鼠标悬停时jQuery滑块不会停止

时间:2016-03-30 08:12:19

标签: javascript jquery css

我的jQuery滑块正在工作,但我不知道为什么它在我悬停时不会停止。

我没有使用任何滑块插件。

这是代码。

    $(function(){

    var width = 720;
    var animationSpeed = 1000;
    var pause = 3000;
    var currentSlide = 1;

    var $slider= $('#slider');
    var $slideContainer = $slider.find('.slides');
    var $slides = $slideContainer.find('.slide');

    var interval;

    function startSlider(){
        setInterval(function(){

            $slideContainer.animate({'margin-left': '-='+width}, animationSpeed, function(){

                currentSlide++;
                if(currentSlide === $slides.length){
                currentSlide = 1;
                $slideContainer.css('margin-left', 0);
                }
            });

        }, pause);

    }

    function stopSlider(){

        clearInterval(interval);

    }



    $slider.on('mouseenter', stopSlider).on('mouseleave', startSlider);

    startSlider();
    stopSlider();


});        

任何帮助都将不胜感激。

4 个答案:

答案 0 :(得分:2)

试试这个;)

var width = 720;
var animationSpeed = 1000;
var pause = 3000;
var currentSlide = 1;
var interval;

var $slider = "";
var $slideContainer = "";
var $slides = "";

function startSlider(){
  interval = setInterval(function(){
    $slideContainer.animate({
      'margin-left': '-=' + width
    },
    animationSpeed, function(){
      currentSlide++;
      if(currentSlide === $slides.length){
        currentSlide = 1;
        $slideContainer.css('margin-left', 0);
      }
    });

  }, pause);
}

function stopSlider(){
  clearInterval(interval);
}

$(function(){
  $slider = $('#slider');
  $slideContainer = $slider.find('.slides');
  $slides = $slideContainer.find('.slide');

  $slider.on('mouseenter', stopSlider).on('mouseleave', startSlider);
  startSlider();
});

答案 1 :(得分:1)

如果你想停止你需要做的间隔,如:

var interval = setInterval(function(){//do stuff here});
clearInterval(interval);

答案 2 :(得分:1)

你做错了。 要停止间隔,您需要在之前将其分配给变量。

  1. 创建您的间隔并将其分配给var:

    var timer = setInterval(function(){     //在这里做点什么 });

  2. 你有时间设置,现在你可以阻止它!像这样:

    clearInterval(定时器); 希望能帮到你:)

答案 3 :(得分:0)

只需从你的变量前缀中删除$,它不是php,它是jquery。