javascript - 如何让该幻灯片在鼠标悬停时暂停?

标签 javascript jquery html

我对 JavaScript 几乎一无所知,所以我需要你的帮助来向此幻灯片添加“鼠标悬停时暂停”功能。

$( function() {
    $( '#cbp-fwslider' ).cbpFWSlider();
} );

setInterval(function() {
    if(jQuery('.cbp-fwnext').css('display') != 'none'){
        jQuery('.cbp-fwnext').click();
    }
    else { 
        jQuery('.cbp-fwdots span:first-child').click();
    }
}, 3000);   

我找到了这张幻灯片here我添加了底部位(从另一个用户复制的)以允许它自动滚动,但我不知道如何使其在鼠标悬停时暂停。

请帮助任何人。

最佳答案

如果我正确理解您的代码,您正在使用 setInterval() 来模拟每 3 秒单击下一个按钮。因此,您可以通过让一些代码处理 mouseenter 和 mouseleave 事件来添加暂停,并设置一个 isPaused 变量,然后您的现有代码将在执行 click() 之前测试该变量。假设您希望悬停功能位于 #cbp-fwslider 元素上:

$( function() {
    var isPaused = false;

    $( '#cbp-fwslider' ).cbpFWSlider()
                        .on({
                           mouseenter: function() { isPaused = true; },
                           mouseleave: function() { isPaused = false; }
                        });

    setInterval(function() {
        if (isPaused) return; // do nothing when paused

        if(jQuery('.cbp-fwnext').css('display') != 'none')
            jQuery('.cbp-fwnext').click();
        else
            jQuery('.cbp-fwdots span:first-child').click();
    }, 3000);
});

请注意,我已将您的 setInterval() 代码移至文档就绪处理程序中,以便 isPaused 可以成为就绪处理程序中的局部变量,而不是全局变量。

(没有幻灯片的悬停暂停功能的简单演示:http://jsfiddle.net/1gf8z8yd/1/)

关于javascript - 如何让该幻灯片在鼠标悬停时暂停?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28059621/

相关文章:

javascript - 使用 Angular js 在前端下载文件

javascript - 加载另一个类后将类添加到 div

javascript - 我如何让 Google Analytics 跟踪幻灯片中的单个图像?

javascript - 单击 HTML 后如何保持选择?

javascript - 防止浏览器弹出窗口警告

html - CSS 覆盖和事件按钮

javascript - 如何使用数据列表返回 javascript 对象中值的位置

javascript - Luxon.js ISO 8601 解析

php - 表单验证以查看电子邮件是否已存在于 MySQL 数据库中

javascript - 在 Accordion 中使用 toggleClass() 而不是 addClass()/removeClass()