본문 바로가기
Effect

sliderEffect04

by 코터틀 2022. 9. 19.
반응형

sliderEffect04 - 버튼

네번째 슬라이드 이펙트 - 버튼으로 다음/이전 이미지로 넘어가도록 하였습니다.


참고

슬라이드 이펙트 04 페이지 우측하단 소스 보기를 클릭하시면 JAVASCRIPT, HTML, CSS를 확인할 수 있습니다.

JAVASCRIPT

사용할 변수를 선언합니다. 이미지가 좌/우로 넘어갈 때 애니메이션 효과를 주었으며, 먼저 선언한 sliderWidth = 이미지의 가로값px만큼 이동하게 합니다.
prev 버튼과 next 버튼에 이벤트를 주면 끝입니다.
(prev 버튼에는 현재이미지 + (이미지 개수 - 1) % 이미지 개수를 통하여 이전 이미지로 넘어가도록)
(next 버튼에는 현재이미지 + 1 % 이미지 개수를 통하여 다음 이미지로 넘어가도록)

const sliderWrap = document.querySelector(".slider__wrap");
const sliderImg = document.querySelector(".slider__img");       // 보여지는 영역
const sliderInner = document.querySelector(".slider__inner");   // 움직이는 영역
const slider = document.querySelectorAll(".slider");            // 각각 이미지
const sliderBtn = document.querySelector(".slider__btn");    // 버튼
const sliderBtnPrev = document.querySelector(".prev");    // 왼쪽버튼
const sliderBtnNext = document.querySelector(".next");    // 오른쪽버튼

let currentIndex = 0;                       // 현재 이미지
let sliderCount = slider.length             // 이미지 개수
let sliderWidth = sliderImg.offsetWidth     // 이미지 가로값

// 이미지 움직이는 영역
function gotoSlider(num) {
    sliderInner.style.transition = "all 400ms";
    sliderInner.style.transform = "translateX(" + -sliderWidth * num + "px)";
    currentIndex = num;
    // console.log(currentIndex)
}

// 왼쪽 버튼 클릭
sliderBtnPrev.addEventListener("click", () => {
    let prevIndex = (currentIndex + (sliderCount - 1)) % sliderCount;

    gotoSlider(prevIndex);
    // if (prevIndex > 0) {
    //     gotoSlider(4);
    // }
});

// 오른쪽 버튼 클릭
sliderBtnNext.addEventListener("click", () => {
    let nextIndex = (currentIndex + 1) % sliderCount;
    gotoSlider(nextIndex);
    // 0 1 2 3 4
});
반응형

'Effect' 카테고리의 다른 글

mouseEffect03  (3) 2022.09.22
parallax Effect05  (8) 2022.09.20
mouseEffect02  (6) 2022.09.19
Parallax Effect04  (3) 2022.09.19
Parallax Effect03  (2) 2022.09.13

광고 준비중입니다.