JAVASCRIPT/자바스크립트

sliderEffect01 - 페이드 효과 주기

(*ᴗ͈ˬᴗ͈)ꕤ*.゚ 2022. 2. 15. 18:15

HTML 구성

<div class="slider__wrap">
    <div class="slider__img">
        <div class="slider"><img src="img/images01.jpg" alt="이미지1"></div>
        <div class="slider"><img src="img/images02.jpg" alt="이미지2"></div>
        <div class="slider"><img src="img/images03.jpg" alt="이미지3"></div>
        <div class="slider"><img src="img/images04.jpg" alt="이미지4"></div>
        <div class="slider"><img src="img/images05.jpg" alt="이미지5"></div>
    </div>
</div>

 

JS 구성

<script>
    //slider01
    const sliderWrap = document.querySelector(".slider__wrap"); //sliderWrap 선언
    const sliderImg = document.querySelector(".slider__img"); //sliderImg 선언
    const slider = document.querySelectorAll(".slider"); //slider 선언

    let currentIndex = 0; //현재 보이는 이미지
    let sliderCount = slider.length //이미지 갯수

    setInterval(() => {     //일정한 시간간격으로 작업을 실행
        let nextIndex = (currentIndex + 1) % 5;     //5로 나눈 나머지 값을 한다

        slider[currentIndex].style.opacity = "0" //첫 번째 이미지를 안보이게
        slider[nextIndex].style.opacity = "1" //두 번째 이미지를 안보이게

        slider.forEach(slider => { //slider 각각을 선택해서
            slider.style.transition = "all 0.7s" //애니메이션을 속도를 조절하여 자연스럽게!
        })

        currentIndex = nextIndex; // currentIndex값을 nextIndex 값과 같이 한다
    },2000); //2초간격으로한다 (setInterval을 썼으니, 계속 반복한다)
</script>

 

 

링크 https://sungilryuu.github.io/webs_class/javascript/effect/sliderEffect01.html