5

我想设置 flexslider,以便它在鼠标悬停时启动/恢复自动幻灯片放映并在鼠标悬停时暂停。与正常行为完全相反。:D

所以我有这个问题: TypeError: 'undefined' is not a function (evaluate 'slider.resume()') 并且在互联网上搜索没有产生任何结果。

我的脚本是:

    $( document ).ready(function() {
    var $slider = $('.flexslider');

    $slider.flexslider({
    controlNav: false,
    directionNav: false, 
    slideshow: true,
    slideshowSpeed: 500,
    animationSpeed: 300,
    /*randomize: true,*/
    controlsContainer: ".flex-container",
    start: function(slider) {
        slider.pause();
        slider.mouseover(function() {
        slider.resume();
    });
  },
});

});

任何指向正确方向的指针都会有所帮助。

卢卡

*更新...我找到了一个可行的解决方案...如果有人想知道是这样的:

start: function(slider) {
        slider.pause();
        slider.manualPause = true;
        $slider.mouseover(function() {
            slider.manualPause = false;
            slider.play();
        });
        $slider.mouseout(function() {
            slider.manualPause = true;
            slider.pause();
        });
  }

卢卡

4

3 回答 3

5

我找到了一个可行的解决方案:

start: function(slider) {
        slider.pause();
        slider.manualPause = true;
        slider.mouseover(function() {
            slider.manualPause = false;
            slider.play();
        });
        slider.mouseout(function() {
            slider.manualPause = true;
            slider.pause();
        });
  }
于 2013-11-06T12:48:08.730 回答
0

实际上这工作得更好一点:

start: function(slider) {
    slider.pause();
    slider.manualPause = true;
    slider.mouseenter(function(){
        slider.flexslider('next');
        slider.play();
        slider.manualPause = false;
    });
    slider.parent().mouseleave(function() {
        slider.manualPause = true;
        slider.pause();
    });
}

它可以防止函数多次触发,并允许直接转到下一张幻灯片,而没有 play() 函数的初始延迟。

于 2017-07-20T13:42:53.803 回答
0

为了将来参考,您不必在滑块设置中添加您的功能。如果您想在将鼠标悬停在页面上的任何元素上时暂停滑块,您可以添加类似的内容:

$hoveredElement.on('focusin', function() {

  $slider.slick('slickPause');

});

或在悬停时恢复自动播放:

$hoveredElement.on('focusin', function() {

  $slider.slick('slickPlay');

});

所有这些都假设您$slider首先声明了您的设置!

于 2018-02-26T00:36:37.220 回答