【问题标题】:Cycle hover on mouseout鼠标悬停时循环悬停
【发布时间】:2014-10-22 15:22:30
【问题描述】:

我想知道是否有人知道 Cycle 插件的工作原理。

jQuery(function($){
    $(".slides").cycle({
        fx:     'fade',
        speed:   450,
        timeout: 5,
        startingSlide: 0,
    }).cycle("pause");

    // Pause & play on hover
    $(".slideshow-block").mouseover(function() {
     $(this).find(".slides").addClass('active').cycle('resume');
    }).mouseout(function(){
    $(this).find(".slides").removeClass('active').cycle('pause');
});

});

有没有办法通过在鼠标移出时淡入第一张图像来重新启动“幻灯片放映” (而不是暂停)?

我找到了这段代码,但它对我不起作用。

$(this).find('.slides').removeClass('active').cycle('stop').cycle({
    startingSlide: 0
});

这是我的jsfiddle

在此先感谢您的帮助!

【问题讨论】:

    标签: jquery html cycle jquery-cycle


    【解决方案1】:

    更新:

    好的,忽略下面的所有内容。我在插件的常见问题页面上找到了解决方案。

    .cycle 函数可以接受一个整数参数,将当前幻灯片设置为传递的索引。

    $(this).find(".slides").removeClass('active').cycle('pause').cycle(0);
    

    http://jsfiddle.net/WetNoodles/Ly0jxgz6/7/


    它似乎不受官方支持,但是您可以在鼠标移出事件中重建循环插件。 (另外,我将 mouseout 更改为 mouseleave - 它似乎有更可靠的结果)

    .mouseleave(function () {
        $(this).find(".slides").removeClass('active').cycle('pause');
        buildCycle();
    });
    

    http://jsfiddle.net/Ly0jxgz6/2/

    作为额外说明,您可以通过 jQuery 的数据函数确定当前正在显示哪张幻灯片。

    var currSlide = $('.slides').data('cycle.opts').currSlide
    

    然后您可以使用“prev”命令翻页到第一张幻灯片,但看起来如果您这样做,将为每张幻灯片运行过渡动画。

    【讨论】:

    • 感谢您的回答。我已经尝试了代码,但它对我不起作用。我添加了几张幻灯片,但是在 mouseleave 上,图片有时会变成白色。当我将鼠标悬停在下一张幻灯片上时,上一张返回。 [1]:jsfiddle.net/baller/Ly0jxgz6/3
    • 是的,我也注意到偶尔会发生这种情况。那么,我不确定什么是好的方法。抱歉,我无法提供更多帮助。如果您能弄清楚如何阻止动画或隐藏循环器,您也许可以使用 currSlide。 (这让你接近)jsfiddle.net/WetNoodles/Ly0jxgz6/4
    • @marvker 在对插件站点进行更多搜索后,我发现了实际的解决方案,并相应地更新了答案。它实际上记录在常见问题解答和演示部分中,而不是选项/命令文档页面中。
    • 谢谢你帮了我很多。这正是我一直在寻找的。我已经在我的项目中实施了。但是它没有响应,但我正在尝试弄清楚。
    猜你喜欢
    • 1970-01-01
    • 2011-08-04
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 2011-05-26
    • 2017-10-14
    • 1970-01-01
    相关资源
    最近更新 更多