javascript - Flexslider resume slideshow on mouseover - Stack Overflow

I would like to set up flexslider so it startsresumes auto slideshow on mouseover and pause it on mous

I would like to set up flexslider so it starts/resumes auto slideshow on mouseover and pause it on mouseout. Exactly the oposite of normal behaviour. :D

So i have this issue: TypeError: 'undefined' is not a function (evaluating 'slider.resume()') and searching on internet has not yield any results.

My script is:

    $( 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();
    });
  },
});

});

Any pointer to right direction would be helpful.

Luka

*update... I have found a solution that works... If anybody wants to know is this:

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

Luka

I would like to set up flexslider so it starts/resumes auto slideshow on mouseover and pause it on mouseout. Exactly the oposite of normal behaviour. :D

So i have this issue: TypeError: 'undefined' is not a function (evaluating 'slider.resume()') and searching on internet has not yield any results.

My script is:

    $( 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();
    });
  },
});

});

Any pointer to right direction would be helpful.

Luka

*update... I have found a solution that works... If anybody wants to know is this:

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

Luka

Share Improve this question edited Jun 17, 2013 at 22:32 Luka Mis asked Jun 17, 2013 at 18:47 Luka MisLuka Mis 5731 gold badge7 silver badges18 bronze badges 2
  • Make this as response and flag it as solved to be more readable. Thanks – Mounir Commented Nov 5, 2013 at 12:29
  • Done. Tnx for letting me know. – Luka Mis Commented Nov 6, 2013 at 12:49
Add a ment  | 

3 Answers 3

Reset to default 5

I have found a solution that works:

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

Actually this works a little better:

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();
    });
}

It prevents the function firing multiple times and it allows to go to next slide directly without the initial delay of the play() function.

For future reference, you don't have to add your functionality within the slider settings. You can add something like this if you want to pause the slider when hovering over any element on the page:

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

  $slider.slick('slickPause');

});

Or resume autoplay on hover:

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

  $slider.slick('slickPlay');

});

All of which is assuming you've declared your $slider settings first!

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744290403a4567003.html

相关推荐

  • javascript - Flexslider resume slideshow on mouseover - Stack Overflow

    I would like to set up flexslider so it startsresumes auto slideshow on mouseover and pause it on mous

    7天前
    10

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信