티스토리 뷰
{
const sliderWrap = document.querySelector(".slider__wrap")
const sliderImg = document.querySelector(".slider__img") //이미지 보이는 영역
const sliderInner = document.querySelector(".slider__inner") //이미지 움직이는 영역
const slider = document.querySelectorAll(".slider")
let currentIndex = 0;
let sliderCount = slider.length; //이미지 갯수
let sliderHeight = sliderImg.offsetHeight; //이미지 가로값
let sliderClone = sliderInner.firstElementChild.cloneNode(true); //첫번째 자식 선택자(firstElementChild)로 첫번째 이미지 복사
sliderInner.appendChild(sliderClone); //첫 번째 이미지를 마지막에 넣어줌
function sliderEffect(){ //sliderEffect 함수생성
currentIndex++
sliderInner.style.transition = "all 0.3s";
sliderInner.style.transform = "translateY(-"+ sliderHeight *currentIndex +"px)" //translatex - 이미지 세로값 * 현재 보이는 이미지 + px을 sliderInner.style.transform에 저장
//마지막 사진에 갔을 때
if(currentIndex == sliderCount){
setTimeout(()=>{ //함수를 한번만 실행
//이미지 초기화
sliderInner.style.transition = "0s";
sliderInner.style.transform = "translateY(0px)"
},300) //5~6번 갈때 애니메이션이 끊겨서 5~6번 가는 2초사이에 이미지를 뒤로 옮김
currentIndex = 0;
}
}
setInterval(sliderEffect, 2000); //sliderEffect 함수 계속실행
// sliderInner.style.transform = "translateX(-800px)"
// sliderInner.style.transform = "translateX(-1600px)"
// sliderInner.style.transform = "translateX(-2400px)"
// sliderInner.style.transform = "translateX(-3200px)"
// sliderInner.style.transform = "translateX(-4000px)"
// sliderInner.style.transform = "translateX(-4800px)" <를 단축 시킨게 이미지 초기화
}
'Script Sample > SliderEffect' 카테고리의 다른 글
Slider Effect 06 - 닷 추가 (0) | 2022.02.19 |
---|---|
Slider Effect 05 - 버튼 추가 (0) | 2022.02.19 |
Slider Effect 03 - 연속적으로 움직이기 (0) | 2022.02.16 |
Slider Effect 02 - 좌로 움직이기 (0) | 2022.02.16 |
Slider Effect 01 - 페이드 효과 (0) | 2022.02.15 |
댓글
© 2018 webstoryboy