Script Sample/Slider Effect
Slider Effect05- 버튼 추가
zㅣ도닝
2022. 2. 17. 12:55
반응형
// slider05
const sliderWrap = document.querySelector(".slider__wrap"); //sliderWrap에 div 태그 .slider__wrap 저장
const sliderImg = document.querySelector(".slider__img"); //sliderImg에 div 태그 .slider_img 저장, 이미지 한 칸만 보이는 영역
const sliderInner = document.querySelector(".slider__inner"); //이미지 움직이는 영역
const slider = document.querySelectorAll(".slider"); //slider에 div 태그 .slider (최종적으로 이미지를 담는 다섯개의 div)
const sliderBtn = document.querySelector(".slider__btn");
const sliderBtnPrev = sliderBtn.querySelector(".prev");
const sliderBtnNext = sliderBtn.querySelector(".next");
let currentIndex = 0;
let sliderCount = slider.length; //이미지 갯수
let sliderWidth = sliderImg.offsetWidth; //이미지 가로 값
function gotoSlider(num){
sliderInner.style.transition = "all 400ms"; //0.4초
sliderInner.style.transform = `translateX(-${sliderWidth * num}px)`;
currentIndex = num;
}
sliderBtnPrev.addEventListener("click", () => { //prev 버튼을 눌렀을 때
let prevIndex = (currentIndex + (sliderCount -1)) % sliderCount; //첫번째 이미지를 보고 있을 때 -를 햇을때 -> 마지막으로 갈 수 있게
//첫번째 있을 때 0--> 4
// if( currentIndex == 0 ) prevIndex = sliderCount -1;
// 0 1 2 3 4
gotoSlider(prevIndex);
})
sliderBtnNext.addEventListener("click", () => { //next 버튼을 눌렀을 때
let nextIndex = (currentIndex + 1) % sliderCount; //이미지 갯수를 넘어가지 못하게 최대값을 정해둔다.
//이미지 총 갯수 이상 넘어가지 X
gotoSlider(nextIndex);
})
setInterval() - Web APIs | MDN
The setInterval() method, offered on the Window and Worker interfaces, repeatedly calls a function or executes a code snippet, with a fixed time delay between each call.
developer.mozilla.org
슬라이드 이펙트
이미지 슬라이드 - 버튼 추가 1 2 3 4 5 6 7 8 소스보기 HTML CSS JavaScript jQuery /* slider03 */ .slider__wrap { display: flex; align-items: center; justify-content: center; height: 100vh; } .slider__img { /* 화면 보이는 구간 */ width:
jiseonpack.github.io
반응형