对此有一些答案,但没有我真正理解的。
所以任何帮助都会很棒!
我的时间间隔
setInterval(function(){
nextThumb.trigger("click");
nextBanner();
bannerLoop();
}, 1500);
清除间隔?
$('#thumbs, #banner').hover(function(){
clearInterval();
});
所以当我将鼠标悬停在#thumbs或#banner上时,我希望我的间隔暂停。当我的鼠标离开时,我希望它从它停止的地方恢复。
谢谢你的时间!
答案 0 :(得分:3)
您需要将setInterval
来电分配给某个变量:
var myInterval = setInterval(function(){
...
然后将其传递给clearInterval
函数:
clearInterval( myInterval );
要重新恢复,您需要创建新的setInterval
,并在您的范围内显示已分配的myInterval
变量。
所以你的代码应该是:
var myInterval;
function createInterval() {
myInterval = setInterval(function(){
nextThumb.trigger("click");
nextBanner();
bannerLoop();
}, 1500);
}
createInterval();
$('#thumbs, #banner').hover(function(){
clearInterval(myInterval);
}, function() {
createInterval();
});
答案 1 :(得分:1)
clearInterval()
暂停一个间隔;它清除它。您需要恢复悬停意图内的间隔。如果您使用匿名函数,这一点尤其棘手,因此您最好按照以下方式重构代码:
var intveral = 1500;
function intervalCall()
{
nextThumb.trigger("click");
nextBanner();
bannerLoop();
}
var myInt = setInterval(intervalCalll, interval);
$('#thumbs, #banner').hover(function(){
clearInterval(myInt);
}, function() {
myInt = setInterval(intervalCalll, interval);
});
答案 2 :(得分:0)
首先,创建两个函数来启动和停止间隔,并跟踪间隔ID:
var intervalID;
function startInterval() {
stopInterval();
intervalID = setInterval(function(){
nextThumb.trigger("click");
nextBanner();
bannerLoop();
}, 1500);
}
function stopInterval() {
if (intervalID)
clearInterval(intervalID);
intervalID = null;
}
然后,您希望在鼠标悬停时停止间隔并在鼠标滑出时重新启动它:
$('#thumbs, #banner').hover(stopInterval, startInterval);
最后,最初开始间隔:
startInterval();