簡體   English   中英

圖像在鼠標懸停時停止切換但在鼠標移開時恢復

[英]Images to stop toggling when mouseover but resume on mouseout

我的圖像在彼此之間切換,當您 hover 在它們上方切換時,它們會停止,但是當您移開鼠標時,它不想恢復切換。 我究竟做錯了什么?

<script>
   var t;

  addEventListener("load", () => {
    var index = 0;
    const slides = document.querySelectorAll(".slides");
    const classHide = "slides-hidden",
      count = slides.length;
    nextSlide();
    function nextSlide() {
      slides[index++ % count].classList.add(classHide);
      slides[index % count].classList.remove(classHide);
      t = setTimeout(nextSlide, 500);
    }
  });

   $(".portfolio-image").mouseover(function () {
    if (t) {
      t = clearTimeout(t);
  }
  });

  $(".portfolio-image").mouseout(function () {
    if (t) {
      t = setTimeout(nextSlide, 500);
  }
  });

也許這可以幫助你:

$(".portfolio-image").mouseover(function () {
    if (t) {
      clearTimeout(t);
  }
  });

問題是“setTimeout”被調用一次,你想改用“setInterval”和“clearInterval”。

好的,我在你們的幫助下解決了它。 setInterval 更適合這個任務,我不得不將它放在與變量t相同的 scope 中,因為它沒有被讀取。

  var t;

  addEventListener("load", () => {

    var index = 0;
    const slides = document.querySelectorAll(".slides");
    const classHide = "slides-hidden",
      count = slides.length;
    nextSlide();
    t = setInterval(nextSlide, 500);
    function nextSlide() {
      slides[index++ % count].classList.add(classHide);
      slides[index % count].classList.remove(classHide);
    }

   $(".portfolio-image").mouseover(function () {
      clearInterval(t);
  });

  $(".portfolio-image").mouseout(function () {
    t = setInterval(nextSlide, 100);
  });

  });

謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM