![](/img/trans.png)
[英]How to stop a setInterval fired by mouseenter, upon mouseleave?
[英]Start animation on mouseleave and stop on mouseenter using setinterval and clearinterval
我正在使用实体化转盘,并且正在使用setInterval()自动更改幻灯片,但是我希望此setInterval在悬停时应该停止/暂停,在悬停时重新开始。
我曾尝试使用clearinterval,但效果并不理想。
$(document).ready(function(){
$('.carousel').carousel(); // Start carousel
/* I WAS USING THIS BEFORE JUST FOR CHANGING SLIDES AUTOMATICALLY
setInterval(function(){
$('.carousel').carousel('next');
},2500);
});
*/
// THIS IS WHAT IHAVE TRIED
var myVar;
function start(){
var myVar = setInterval(next, 2500);
function next() {
$('.carousel').carousel('next');
}
}
function stop() {
clearInterval(myVar);
myVar = 0;
}
$('.carousel').mouseenter(function(){stop();});
$('.carousel').mouseleave(function(){start();});
start();
});
该代码没有给出任何错误。
替换此行:
var myVar = setInterval(next, 2500);
有了这个:
myVar = setInterval(next, 2500);
您已经定义了全局变量,并且在start
函数中,您再次初始化变量并将赋给setInterval
的返回值。 这意味着myVar
对于start
功能以外的其余代码仍未分配。 因此clearInterval
不起作用。
您只需要将返回值分配给全局变量myVar
,即可为您工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.