gpt4 book ai didi

javascript - 停止 javascript 无限循环 onmouseout?

转载 作者:行者123 更新时间:2023-11-29 22:30:19 25 4
gpt4 key购买 nike

我在悬停时“动画化”一个 Sprite 。问题是我不知道如何停止 onmouseout 循环。所以基本上在将鼠标悬停后, Sprite 会无限期地移动。

$("#explore").hover(function () { // Listen for hover
var number2 = 0;
setInterval(function() { // Animate sprite changing it's margin
switch (number2) {
case 0:
sprite2.style.marginLeft=-32;
number2++;
break;
case 1:
sprite2.style.marginLeft=-64;
number2++;
break;
case 2:
sprite2.style.marginLeft=0;
number2 = 0;
}
}, 120);
},function () {
sprite2.style.marginLeft=0;
});

如何让它停止 onmouseout?还有做同样事情的最短(更少代码)版本吗?我的印象是我在循环中浪费了很多行。谢谢


我根据 Pointy 评论尝试了此操作,但无法弄清楚如何正确执行此操作:

var number2 = 0;
var timer = setInterval(function() {
switch (number2) {
case 0:
sprite2.style.marginLeft=-32;
number2++;
break;
case 1:
sprite2.style.marginLeft=-64;
number2++;
break;
case 2:
sprite2.style.marginLeft=0;
number2 = 0;
}
}, 120);
},function () {
clearInterval(timer);
});

最佳答案

试试这个

$("#explore").hover(function () { // Listen for hover
var number2 = 0;
$(this).data("hovertimer", setInterval(function() { // Animate sprite changing it's margin
switch (number2) {
case 0:
sprite2.style.marginLeft=-32;
number2++;
break;
case 1:
sprite2.style.marginLeft=-64;
number2++;
break;
case 2:
sprite2.style.marginLeft=0;
number2 = 0;
}
}, 120));
},function () {
clearTimeout($(this).data("hovertimer"));
sprite2.style.marginLeft=0;
});

关于javascript - 停止 javascript 无限循环 onmouseout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7303248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com