메인 페이지에서 마케팅 정보를 보여주는 방법으로, 유저가 스크롤을 내리지 않고도 볼 수 있는 정보의 양을 극대화하기 위해 사용됨
// styled-component
const Conatiner = styled.div`
width : 700px; // 이미지 크기와 똑같게 설정
overflow : hidden; // 스크롤바가 안보이게 한다
`
const SliderContainer = styled.div`
width : 100%;
display : flex;
`
function Slider() {
const totalSlides = 5; // 몇개의 슬라이드가 있는지를 작성
const [currentSlide,setCurrentSlide] = useState(0);
const slideRef = useRef();
const nextSlide = () => {
slideRef.current.style.transition = 'all 0.3s ease-in-out'; // 부드럽게 움직임
if(currentSlide >= totalSlides -1){
setCurrentSlide(0);
slideRef.current.style.transform = 'translateX(0%)';
// 슬라이드 마지막의 다음은 슬라이드 첫번째로 돌아감
}
else {
setCurrentSlide(currentSlide + 1);
slideRef.current.style.transform = `translate(-${(currentSlide+1)*700}px)`
// 슬라이드를 한칸씩 이동하는데 그 한칸의 크기는 이미지의 크기(700px)만큼 이동한다.
}
}
useEffect(() => {
setTimeout(nextSlide,5000); // 5초에 한번씩 슬라이드가 이동
},[currentSlide])
return (
<Container>
<SliderContainer ref={slideRef}>
<img src='이미지 주소'>
<img src='이미지 주소'>
<img src='이미지 주소'>
<img src='이미지 주소'>
<img src='이미지 주소'>
</SliderContainer>
</Container>
)
}