jQuery : pause slideshow on hover

标签 jquery jquery-ui

所以我有这个代码:

$(document).ready(function(){
  $("#slideshow > div:gt(0)").hide();
     setInterval(function() {
     $("#slideshow > div:first")
          .fadeOut(1000)
          .next()
          .fadeIn(1000)
          .end()
          .appendTo("#slideshow");
},  3000);
});

100% 正常工作.. 我在哪里添加 .hover() 函数以使幻灯片在悬停时暂停?

最佳答案

方法 setInterval()返回一个间隔 ID,您可以使用 clearInterval() 来清除当前间隔/超时。 .

你可以这样做:

$(document).ready(function() {

    var timer;

    $("#slideshow > div:gt(0)").hide();

    $("#slideshow")
        // when mouse enters, clear the timer if it has been set
        .mouseenter(function() {
            if (timer) { clearInterval(timer) }
        })
        // when mouse goes out, start the slideshow
        .mouseleave(function() {
            timer = setInterval(function() {
                $("#slideshow > div:first")
                    .fadeOut(1000)
                    .next()
                    .fadeIn(1000)
                    .end()
                    .appendTo("#slideshow");
            }, 3000);
        })
        // trigger mouseleave for initial slideshow starting
        .mouseleave();

});​

DEMO

关于jQuery : pause slideshow on hover,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10912495/

相关文章:

javascript - 如何以编程方式将所需的行移动到数据表的顶部?

javascript - 如何将 js 变量传递给 @Model.MyModel (MVC4)

javascript - 替代正则表达式来隐藏匹配的 id 元素?

jQuery UI 日期选择器 : Can you format a date and allow multiple seperator characters?

javascript - 需要来自捆绑库的单个模块(即 jquery-ui)

javascript - 如何使用 Chrome 扩展程序的 ContentScript 更改 flashvar?

javascript - jQuery insertBefore、Apend 用于动态创建的元素

javascript - jQuery 缓存选定的元素?

javascript - 在 Knockout Foreach 循环中生成 ID

jquery-ui - 日期选择器可见故障?