在悬停上玩flexslider?

时间:2015-06-03 07:41:15

标签: jquery each flexslider

如何首先停止flexslider然后在悬停时播放?并且在同一页面上额外挑战theres multiple。这可以工作但是

  1. 它崩溃了jquery并且没有任何效果(我错过了一些标记?)

  2. 如果用户跳转到浏览器上的另一个标签,那么十几个flexsliders会同时开始播放(这是因为窗口加载或者什么 - 只有当从另一个浏览器标签切换回来时才会出现这种情况)

    $(window).load(function() {
    
    $('.preview').each(function(index){
    
    if($(".preview").eq(index).length) {
    
    $('.preview').eq(index).flexslider({
        slideshowSpeed: 225,
        animationSpeed: 150,
        initDelay: 0,  
        useCSS: true,
        animation: "fade",
        controlNav: false,
        directionNav: false,
        start: function(slider) {
            $('.preview').removeClass('loading');
            slider.pause();
            slider.manualPause = true;
            slider.mouseover(function() {
                slider.manualPause = false;
                slider.play();
            });
            slider.mouseout(function() {
                slider.manualPause = true;
                slider.pause();
            });
        },
        keyboard: false 
    });
    
    }
    
    })
    
    });
    
  3. 如果您有一个滑块但我在同一页面上有多个滑块,则下面的答案是完美的。

  4. (我也很确定eq什么也没做,或者设置不正确)

2 个答案:

答案 0 :(得分:0)

从初始化中删除start回调,然后尝试:

$(document).on("hover", ".flex-viewport img", function() {
    $('.preview').play();
}, function() {
    $('.preview').pause();
});

答案 1 :(得分:0)

好的,明白了。答案是幻灯片:false,

$('.preview').flexslider({
    slideshowSpeed: 225,
    animationSpeed: 150,
    slideshow: false,
    initDelay: 0,  
    useCSS: false,
    animation: "fade",
    animationLoop: false,
    pauseOnHover: false,
    controlNav: false,
    directionNav: false,
    start: function(slider) {
        $('.preview').removeClass('loading');
        slider.pause();
        slider.manualPause = true;
        slider.mouseover(function() {
            slider.manualPause = false;
            slider.play();
        });
        slider.mouseout(function() {
            slider.manualPause = true;
            slider.pause();
        });
    },
    keyboard: false 
});