본문 바로가기
Effect

SliderEffect - 03

by 코딩 냠냠 2022. 9. 2.
728x90
반응형

스크립트를 이용한 슬라이드 효과 만들기 03

이미지 슬라이드가 자연스럽게 이어지는 효과를 만들 수 있습니다.

JavaScript

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 sliderWidth = sliderImg.offsetWidth;                            //이미지 가로 값
let sliderClone = sliderInner.firstElementChild.cloneNode(true);    //첫번째 이미지 복사
sliderInner.appendChild(sliderClone);                               //첫번째 이미지를 마지막에 넣어줌

function sliderEffect(){
    currentIndex++;
    sliderInner.style.transition = "all 0.6s";
    sliderInner.style.transform = "translateX(-"+sliderWidth * currentIndex +"px)";

    // sliderInner.style.transform = "translateX(-800px)";          800*1
    // // sliderInner.style.transform = "translsteX(-1600px)";      800*2
    // // // sliderInner.style.transform = "translsteX(-2400px)";   800*3    
    // // // sliderInner.style.transform = "translsteX(-3200px)";   800*4
    // // // sliderInner.style.transform = "translsteX(-4000px)";   800*5
    // // // sliderInner.style.transform = "translsteX(-4800px)";   800*6

    //마지막 사진에 위치 했을 때
    if(currentIndex == sliderCount){
        setTimeout(() => {
            sliderInner.style.transition = "0s";
            sliderInner.style.transform = "translateX(0px)";
        }, 700);
        currentIndex = 0; 
    }
}
setInterval(sliderEffect, 2000);

setTimeout(() => {}, 700)


setTimeout() 메서드는 코드를 바로 실행하지 않고 일정시간 기다린 후 실행해야 할때 사용합니다. 첫번째 인자로 실행코드가 담겨있는 함수를 받고, 두번째는 지연시간을 받습니다. 이때 시간은 밀리초(ms)로 받습니다.

'Effect' 카테고리의 다른 글

parallax Effect - 02  (1) 2022.09.13
parallax Effect - 01  (5) 2022.09.06
SliderEffect - 02  (3) 2022.08.29
SliderEffect - 01  (3) 2022.08.29
QuizEffect - 06  (5) 2022.08.24

댓글


자바스크립트

Javascript

자세히 보기
html
css
광고 준비중입니다.
<