如何在徘徊时停止眨眼

时间:2016-09-08 18:02:16

标签: javascript jquery

我希望按钮悬停时闪烁停止。有什么想法?

      function blinker() {
        $( & #39;.blinking&# 39;).fadeOut(1000);
        $( & #39;.blinking&# 39;).fadeIn(1000);
      }
      setInterval(blinker, 4000);

1 个答案:

答案 0 :(得分:1)

您可以在间隔期间存储处理程序,并在按钮悬停时使用它来清除它:

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的评论,我编辑了我的答案。