๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Javascript/Effect

์Šฌ๋ผ์ด๋“œ ์ดํŽ™ํŠธ (1)

by oranssy 2022. 8. 29.
728x90
๋ฐ˜์‘ํ˜•

โญ๏ธ ์Šฌ๋ผ์ด๋“œ ์ดํŽ™ํŠธ 01 โญ๏ธ


01. < script > ์— ์ž‘์„ฑํ•˜๊ธฐ

    // ๊ฐ€์šด๋ฐ ์ด๋ฏธ์ง€ ์Šฌ๋ผ์ด๋“œ
    const sliderWrap = document.querySelector(".slider__wrap");
    const sliderImg = sliderWrap.querySelector(".slider__img");     // sliderWrap ์•ˆ์—์„œ ์ฐพ์œผ๋ผ๊ณ  document ๋Œ€์‹ ์— sliderWrap ์„ ์ ์–ด์คŒ
    const slider = sliderWrap.querySelectorAll(".slider");

    let currentIndex = 0;               // ํ˜„์žฌ ๋ณด์ด๋Š” ์ด๋ฏธ์ง€
    let sliderCount = slider.length;    // ์ด๋ฏธ์ง€ ๊ฐฏ์ˆ˜

    setInterval(() => {
        // console.log("์‹คํ–‰")                        // 1000 = 1์ดˆ์— ํ•œ ๋ฒˆ์”ฉ ์‹คํ–‰ํ•จ
        // let nextIndex = (currentIndex + 1) % 5;   // ์ˆซ์ž๋ฅผ 5๋กœ ํ•œ์ •์ง€์œผ๋ฉด ์‚ฌ์ง„์„ 5์žฅ ๋ฐ–์— ๋ชป ๋„ฃ๊ธฐ ๋•Œ๋ฌธ์—,
        // 1, 2, 3, 4, 5, 6, 7, 8, 9, ...
        // 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, ...

        let nextIndex = (currentIndex + 1) % sliderCount;   // ์ด๋ฏธ์ง€ ๊ฐฏ์ˆ˜์— ๋งž์ถฐ์„œ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋„๋ก sliderCount ๋ฅผ ์ง€์ •ํ•จ

        slider[currentIndex].style.opacity = "0";
        slider[nextIndex].style.opacity = "1";
        //slider[0].style.opacity = "0";  // ์ฒซ๋ฒˆ์จฐ ์ด๋ฏธ์ง€๋ฅผ ์•ˆ ๋ณด์ด๊ฒŒ ํˆฌ๋ช…๋„ ์กฐ์ ˆ
        //slider[1].style.opacity = "1";  // ๋‘๋ฒˆ์งธ ์ด๋ฏธ์ง€๋ฅผ ๋ณด์ด๊ฒŒ ํˆฌ๋ช…๋„ ์กฐ์ ˆ

        currentIndex = nextIndex;       // ํ˜„์žฌ ๋ณด์ด๋Š” ์ด๋ฏธ์ง€ = ๋‹ค์Œ ์ˆœ์„œ๋กœ
    }, 3000)

03. ๊ฒฐ๊ณผ๋ณด๊ธฐ

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€