我希望在将鼠标悬停时停止闪烁。有什么想法吗?
function blinker() {
$( & #39;.blinking&# 39;).fadeOut(1000);
$( & #39;.blinking&# 39;).fadeIn(1000);
}
setInterval(blinker, 4000);
最佳答案
您可以按时间间隔存储一个处理程序,并在鼠标悬停时使用它来清除它:
function blinker() {
$('.blinking').fadeOut(1000);
$('.blinking').fadeIn(1000);
}
intervalHandler = setInterval(blinker, 4000);
$('.blinking').mouseover(function() {
clearInterval(intervalHandler);
intervalHandler = undefined;
});
如果希望在按钮不再悬停时再次闪烁,可以将间隔设置回去:
$('.blinking').mouseout(function() {
if (!intervalHandler) {
intervalHandler = setInterval(blinker, 4000);
}
});
通过在清除间隔时将处理程序设置为undefined,可以确保永远不要两次设置间隔,这将防止您同时清除两个间隔并使闪烁持续存在。
感谢@Luger的评论,我编辑了答案。