我的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();
});
任何帮助都将不胜感激。
答案 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)
你做错了。 要停止间隔,您需要在之前将其分配给变量。
创建您的间隔并将其分配给var:
var timer = setInterval(function(){ //在这里做点什么 });
你有时间设置,现在你可以阻止它!像这样:
clearInterval(定时器); 希望能帮到你:)
答案 3 :(得分:0)
只需从你的变量前缀中删除$,它不是php,它是jquery。