๊ฐ์ฅ ๋ด์ฉ์ด ๋ง์ ํ์ด์ง์ด์,
๋งํฌ๋ฅผ ํ๊ณ ๋ค์ด์ค๋ฉด ์ ์ผ ๋จผ์ ๋ณด์ฌ์ง๊ธฐ์
์ ๊ฒฝ๋ ๋ง์ด ์ฐ์ด๊ณ ์์
๋ ์ค๋, ๊ทธ๋ฆฌ๊ณ ๋๊น์ง ์์ ์ฌํญ์ด ๋ง์๋ ํ์ด์ง์ด๋ค.
์๋ ์์
๋ค์ ์งํํ๋ฉด์ ๊ณ ์ถฉ์ด์๋ ๋ถ๋ถ,
๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ์ด๋ป๊ฒ ํด๊ฒฐํด๋๊ฐ๋์ง์ ๋ํด ์ ๋ฆฌํ๋ฉฐ
๋ค์์๋ ์ข ๋ ๋นจ๋ฆฌ ํด๊ฒฐํ ์ ์๊ธธ ๋ฐ๋ผ๋ณธ๋ค :)
ํ๋ก์ ํธ ์ฒ์ ๊ธฐํํ์ ๋ ์ ์ผ ์ด๋ ค์ธ ๊ฒ ๊ฐ๋ค ๋๊ปด์ง ๊ธฐ๋ฅ,,,
์์
ํ๋ค๋ณด๋ ์ด๊ฑด ์ด๋ ค์ด๊ฒ๋ ์๋์๋ค๋๊ฑธ ๊นจ๋ซ๊ธด ํ์ง๋ง
๊ธฐํํ๊ธฐ ์ ์๋ ์ ์ง ๋ค๊ฐ๊ฐ๊ธฐ ์ด๋ ค์ด ๋๋์ด์๋คใ
์ธ์คํ๊ทธ๋จ์ฒ๋ผ ๋ง๋ค์ด์ผ ํ๊ธฐ์ ์ฌ์ง์ ๋ณผ ๋ ํด๋ฆญํด์ ๋ณด๋๊ฒ ์๋๋ผ
์์ผ๋ก ๋ฐ์ด๋๊ฒจ์ ๋ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฐพ๋ค์ฐพ๋ค ๊ฒฐ๊ตญ
๊ทธ๋ฅ Swiper
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋์๋ค.
( ์์ ๋ง๋ค์ด๋ด๊ณ ์ถ์์ง๋ง, ๋ค๋ฅธ ์์
๋ค์ด ๋๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์๊ธฐ์... )
$ yarn add swiper
์ ํตํด ํจํค์ง๋ฅผ ์ค์นํ๋ค.
๊ทธ๋ฆฌ๊ณ swiper ํจํค์ง๋ ์คํ์ผ๋ง์ด scss
๋ก ๋์ด์๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ์ค์นํด์ฃผ์๋ค.
ํ๊ฒฝ ์ค์ ์ด ์๋ฃ๋๋ฉด
import React from 'react';
import { Swiper, SwiperSlide } from "swiper/react";
import SwiperCore, { Pagination } from "swiper";
import "swiper/swiper.scss";
import "swiper/components/pagination/pagination.scss";
SwiperCore.use([Pagination]);
function SwiperComponent() {
return (
<Swiper
style={{height:"373px"}}
className="swiper-container"
spaceBetween={50}
slidesPerView={1}
pagination={{clickable: true}}
>
<SwiperSlide className="swiper-slide">
<img />
</SipwerSlide>
</Swiper>
);
}
export default SwiperComponent;
๊ธฐ๋ณธ์ ์ผ๋ก Swiper
์ปดํฌ๋ํธ๋ฅผ ์ ค ์ต์์ ์ปดํฌ๋ํธ๋ก ๊ฐ์ธ์ผํ๊ณ
๊ทธ ์์ ๋ค์ด๊ฐ content๋ค์ SwiperSlide
์ ๋ด์์ฃผ์ด์ผ ํ๋ค.
๊ทธ๋ ๊ฒ ๋๋ฉด ์ด๋ฏธ scss
๋ก ์คํ์ผ๋ง๋ ๊ฒ๋ค์ด ์ ์ฉ๋๋ค.
๋ด๊ฐ ์ฌ์ฉํ ์ต์ ๋ค๋ง ์ ๋ฆฌํด๋ณด์๋ฉด,
margin-right
๋ก ์ถ๊ฐ๋์ด์๋ค.์ด์ธ์ ๋ง์ ์ต์ ๋ค์ ๋ํด์๋ ํ๋จ์ ์ฌ์ดํธ๋ฅผ ์ฐธ๊ณ ํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค :)
์ฒ์์๋ SwiperSlide
์์ ์ฌ์ฉํ ์ด๋ฏธ์ง๋ค์ ์ผ์ผ์ด ๋ฃ์ด์ฃผ์๋ค.
๊ทธ๋ฌ๋ค ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ํตํด ethan์ด map
์ ์ด์ฉํด์ ๋ฐฐ์ด๋ก ์ข ๋ ๊ฐํธํ๊ฒ ์ ๋ฆฌํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค๋ ๋ง์
์ฝ๋์๋๋ฐ์ค์์ ์ด๋ฆฌ์ ๋ฆฌ ์ฐ์ตํด๋ณธ ํ ์์ฑํ ์ฝ๋๋
...
const sliders = [
{src : "/img/IMG1.png", alt : "slider img1"},
{src : "/img/IMG2.png", alt : "slider img2"},
{src : "/img/IMG3.png", alt : "slider img3"}
];
return (
<Swiper
style={{height:"373px"}}
className="swiper-container"
spaceBetween={50}
slidesPerView={1}
pagination={{clickable: true}}
>
{sliders.map((slider) => {
return (
<SwiperSlide className="swiper-slide" key={slider.src}>
<SlideImg src={slider.src} alt={slider.alt} />
</SwiperSlide>
);
})}
</Swiper>
๊ฒฐํผ์ ๋ ์ง์ ๋๋ฐ์ด๋ฅผ ๊ณ์ฐํด์ ๋งค์ผ ์ ์ฉ๋ ์ ์๊ฒ ํ๊ณ ์ถ์๋๋ฐ,
๋ง๋
ํ ์์น๋ฅผ ์ฐพ์ง ๋ชปํ๋ค๊ฐ ๊ฒฐ๊ตญ
swiper
์์ ์ฒซ ํ์ด์ง์ ์ถ๊ฐํด์ ๋ฃ๊ธฐ๋ก ํ๋ค.
Date
๋ฅผ ์ฌ์ฉํด์ ๋ ์ง ๊ณ์ฐ์ ํ์๊ณ
const todayDate = new Date();
todayDate.setHours(0);
todayDate.setMinutes(0);
todayDate.setSeconds(0,0);
const weddingDate = new Date("2021/12/31");
const weddingDay =
(weddingDay.getDate() - todayDate.getDate()) / (1000 * 60 * 60 * 24);
SwiperSlide
์ฒซ ํ์ด์ง์ position:absolute
๋ก ์ฌ์ง ์๋จ์ ๋ถํ๋ฒ๋ ธ๋ค.
๋๋ถ์ ๊ตฌํํ ์ ์์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค :)