Skip to content

Bambiru/naver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

넀이버

  • λ„€μ΄λ²„μ˜ νšŒμ‚¬μ†Œκ°œ νŽ˜μ΄μ§€λ₯Ό μ°Έκ³ ν•˜μ—¬ λ°˜μ‘ν˜•νŽ˜μ΄μ§€λ‘œ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

λŠλ‚€ 점

  • 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();
});


μ‚¬μ΄νŠΈ 링크

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published