npm i swiper --save
먼저 슬라이드에 들어가는 이미지의 양이 정해져있지 않고 다음에 또 데이터만 따로 수정하기위해 데이터를 따로 관리하였다.
const ImgSliderData = [
{
id: 0,
src: "이미지주소",
title: "title",
text: "text",
},
{
id: 1,
src: "이미지주소",
title: "title",
text: "text",
},
{
id: 2,
src: "이미지주소",
title: "title",
text: "text",
},
...
];
export default ImgSliderData;
import ImgSliderData from "./ImgSliderData";
function Slider() {
return (
<Swiper
spaceBetween={10} //슬라이드 간격
autoplay={{
delay: 2500, //자동 시간
disableOnInteraction: false,//스와이프 후 자동재생
}}
loop={true} //반복
height={800}
pagination={{ type: "fraction" }}
navigation={true}
modules={[Autoplay, Pagination, Navigation]} //modules에 기능 넣기
>
{ImgSliderData?.map((slideData) => {
return (
<SwiperSlide key={slideData.id}>
<img src={slideData.src} alt="slideImg"/>
</SwiperSlide>
);
})}
</Swiper>
);
}
export default Slider;
swiper사용시 기본 스타일로 고정되어있어 조금의 수정이 필요했다.
일단 버튼사이즈와 컬러를 수정하려는데 Slider js에서는 불러온 SwiperSlide에 버튼이라는 태그 자체가 없다. 어떻게 해야할까?
개발자 도구를 열어보면 해당 태그의 클래스명을 알수 있다.
.swiper-button-prev {
font-weight: bold;
color: #fff;
}
.swiper-button-next {
font-weight: bold;
color: #fff;
}
이전에 라이브러리 없이 이미지 슬라이드를 구현한 적이있는데 swiper라는 라이브러리를 사용하면 구현은 쉽게 된다. 또 Demo를 보면 슬라이드의 종류도 여러가지 이다. 하지만 커스터마이징하려면 그 라이브러리에 대해 따로 공부를 해야한다. 나만의 이미지 슬라이드를 만들고 싶다면 라이브러리 없이 구현하는 것을 추천한다.