javascript - 在结束动画之前避免鼠标检测

标签 javascript jquery mouseover preventdefault

我的动画blink()使图像(.stone)非常缓慢地消失,它在页面准备好时执行,然后再次onmouseout。我的问题是,当动画期间鼠标移至上方(.stone)时,它将连续执行几次。 我想我必须使用或清除队列或防止默认,以避免这种情况,但不知道如何。有人可以帮忙吗?

<SCRIPT>
$(document).ready(function(){blink();});

   function blink(){
        $(".stone").animate({opacity:0},10000);
    };
  
   
    $(".stone").on('mouseover',function () {
        
        $('.stone').animate({opacity:1},100);
        $(".stone").clearQueue();
        });

    $(".stone").on('mouseout',function (){blink();});
                  
</SCRIPT>
<body>
    <div id='conteneur'class='responsiveeinstein'><div class='stone'class='responsiveeinstein'><a href='photos.html'><img src='image1/stone aloneintro.jpg'class='responsiveeinstein'/></a></div><div class='stone2'><img src='image1/stone9.jpg'class='responsiveeinstein'/></div><div><a href='photos.html'><h1 id='elementClignotant'>Einstein</h1></a></div></div>
</body>

最佳答案

我认为这就是您正在寻找的:

fiddle link

$(document).ready(function(){
    var isAnimationFinished = false;
    blink();

    function blink(){
        isAnimationFinished = false;
        $(".stone").animate({opacity:0},10000,function() {
             isAnimationFinished = true;
        });
    };


    $(".stone").on('mouseover',function () {
         if(isAnimationFinished){
           $(".stone").stop();
           $('.stone').animate({opacity:1},100);
         }
    });

    $(".stone").on('mouseout',function (){blink();});

});

关于javascript - 在结束动画之前避免鼠标检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39142824/

相关文章:

jquery - 什么情况下不需要jQuery的document.ready()?

javascript - React js - Laravel 5 : Using csrf-token in POST method

JavaScript 单元测试和持续集成 2011

javascript - 如何从 api url 的(此)点击事件中提取类名

javascript - chrome中如何获取当前事件元素?

php - 鼠标悬停在多个文本段落上的弹出窗口,使用数据库中的数据

html - 如何在鼠标悬停时显示工具提示或项目信息?

javascript - knockout 使用 mouseenter 事件绑定(bind)而不是 mouseover

jquery 基本身份验证失败

javascript - 为什么backbone全程使用_.extend()方法?