- jQueryλ₯Ό JSλ‘ λ³κ²½νλ μ€, bxSliderλ jQueryμμλ§ μ§μνλ€λ κ²μ μκ²λμμ΅λλ€.
λ€λ₯Έ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ°ΎμκΉ κ³ λ―Όνλ€κ° κΈ°μ μ΄λ κ² λ κ±° μ§μ λ§λ€μ΄λ³΄κΈ°λ‘ νμμ΅λλ€.
μκ°λ³΄λ€ μ½λλ 볡μ‘νκ³ μ΄λ €μ μΌλ©°,
νλ‘κ·Έλλ°μ μ¬κ³ λ₯Ό μκ°νλ©° μ λ§ νλνλ λͺ¨λ κ²μ λ€ μ§μ ν΄μ€μΌνλ거ꡬλ λλΌκ² λμμ΅λλ€.
let slideIndex = 0; // νμ¬ λ³΄μ¬μ§κ³ μλ μ¬λΌμ΄λμ μμ
let slideTimer; // μ¬λΌμ΄λλ₯Ό μλμΌλ‘ λκΈ°λ κΈ°λ₯μ ꡬνν λ μ¬μ©ν νμ΄λ¨Έ
let dotContainer = document.querySelector("#dotContainer"); // λνΈλ₯Ό μ μ₯ν 컨ν
μ΄λ
const slides = document.querySelectorAll(".slide_gallery li");
const galleryWrap = document.querySelector(".gallery_wrap");
for (let i = 0; i < slides.length; i++) {
// κ°κ°μ μ¬λΌμ΄λμ λμνλ λνΈλ₯Ό μμ±
const dot = document.createElement("span");
dot.classList.add("dot");
dotContainer.appendChild(dot); // μμ±ν λνΈλ₯Ό 컨ν
μ΄λ μμμ μΆκ°
/* κ°κ°μ λνΈ ν΄λ¦ μ, ν΄λΉ indexλ‘ λ°λ‘ μ΄λνκ³ ,
* μ΄λ―Έ μ§ν μ€μΈ νμμμμ μ΄κΈ°νν ν λ€μ μμ */
dot.addEventListener("click", function () {
clearTimeout(slideTimer); // νμ¬ μ€μ λ setTimeout μ κ±°
slideIndex = i; // ν΄λ¦ν λνΈμ ν΄λΉνλ μΈλ±μ€λ‘ λ³κ²½
showSlides(); // λ³κ²½λ μΈλ±μ€μ λ§κ² μ¬λΌμ΄λ νμ 보μ¬μ£ΌκΈ°
});
}
showSlides(); // μΉ νμ΄μ§ λ‘λ© μλ£ μ, μ¬λΌμ΄λ μΌ μμ
function showSlides() {
const dots = document.querySelectorAll(".dot");
// λͺ¨λ μ¬λΌμ΄λμ λνΈ μ΄κΈ°ν
for (let i = 0; i < slides.length; i++) {
slides[i].style.display = "none"; // λͺ¨λ μ¬λΌμ΄λ μ¨κΉ
dots[i].style.backgroundColor = "#bbb"; // λͺ¨λ λνΈ μμ νμμΌλ‘.
}
// λ§μ½ νμ¬ νμν΄μΌ ν μ¬λΌμ΄λ μΈλ±μ€κ° μ 체 μ¬λΌμ΄λ μλ³΄λ€ ν° κ²½μ°, 첫 λ²μ§Έ μ¬λΌμ΄λλ‘
if (slideIndex >= slides.length) {
slideIndex = 0;
}
// νμ¬ νμν΄μΌ ν μ¬λΌμ΄λμ ν΄λΉνλ λνΈ
slides[slideIndex].style.display = "block";
dots[slideIndex].style.backgroundColor = "#717171";
/* μΌμ μκ°μ΄ μ§λ ν μ½λ λΈλ‘ λ΄λΆμ ν¨μλ₯Ό μ€ννλλ‘ μμ½νκ³ , λ§€λ² λ€μ μ΄λ―Έμ§λ‘ λμ΄κ°κ² μ€μ . */
slideTimer = setTimeout(function () {
slideIndex++;
showSlides();
}, 4000);
}
// λ§μ°μ€κ° .gallery_wrap μμ μμ μμΌλ©΄ setTimeout μ§μ
galleryWrap.addEventListener("mouseenter", () => {
clearTimeout(slideTimer);
});
// λ§μ°μ€κ° .gallery_wrap μμ λ°μΌλ‘ λκ°λ©΄ showSlides()
galleryWrap.addEventListener("mouseleave", () => {
showSlides();
});

