如何在悬停时暂停Bootstrap Carousel并在鼠标移出时恢复它?

时间:2016-12-09 13:24:54

标签: javascript jquery twitter-bootstrap bootstrap-carousel

我的网站上有一个Bootstrap Carousel。

当用户将鼠标悬停在元素#formcontainer上时,我想暂停旋转木马。当我徘徊时,我想继续旋转木马的循环。第一部分可以正常使用以下代码,但不是第二部分。有人可以帮忙吗?

$(document).ready(function() {
    $('.carousel').carousel({
        interval: 1200,
        pause: "hover"
    });

    $('#formcontainer').hover(function(){
        $("#myCarousel4").carousel('pause');
    });
});

3 个答案:

答案 0 :(得分:7)

mouseleave事件

上使用carousel cycle方法
$('#formcontainer').hover(function(){
   $("#myCarousel4").carousel('pause');
},function(){
   $("#myCarousel4").carousel('cycle');
});

答案 1 :(得分:1)

jQuery的hover函数有an implementation that takes two arguments:处理程序中的悬停和悬停 out 处理程序:

$('#foo').hover(function() {
    // handler in
}, function() {
    // handler out
});

当你传递它just one argument时,你给它的函数处理两个的进出事件,所以你在鼠标输入和鼠标输出时都暂停它。

您需要将单独的处理程序传递给它:

$('#myCarousel4').hover(function() {
    $(this).carousel('pause');
}, function() {
    $(this).carousel('cycle');
});

请注意,我们可以使用this来引用轮播而不是重写其ID。在jQuery事件处理程序中,this总是在可能的情况下引用绑定事件的对象。

答案 2 :(得分:0)

这会有效!

(function($) {
$(document).ready(function(){
    $('.carousel').carousel({
        pause: 'hover'
    });

}); }(jQuery));