JQuery 动画在 Chrome 中触发较晚

Posted

技术标签:

【中文标题】JQuery 动画在 Chrome 中触发较晚【英文标题】:JQuery animate firing late in Chrome 【发布时间】:2013-11-26 00:53:06 【问题描述】:

我有一个图像精灵,它在 mouseenter 上改变背景位置并移动文本。鼠标离开时,背景位置和文本都向左移动以显示原始图像。文本是一个单独的元素,一旦位置发生变化,它就会出现在图像上方。 mouseenter 部分完美运行,图像和文本同时向左滚动,但是在 mouseleave 上,但是在 chrome 中(并且似乎只有 chrome),文本将首先移动,然后图像将随后跟随,图像动画的触发时间要比文本晚得多。 我在 chrome 中阅读了一些 .animate() 的问题,但似乎没有一个问题与此有关。 这有什么明显的问题吗?或者有没有更好的方法呢

 //animation on mouse enter
$("#featuredImage").mouseenter(function()
    $(this).animate( backgroundPositionX:"100%" );
    $("#featuredText").show("slide",  direction: "right" );
);      

 //animation on mouse leave
$("#featuredImage").mouseleave(function()
    $(this).animate( backgroundPositionX:"0%" );
    $("#featuredText").hide("slide",  direction: "right" ); 
);

【问题讨论】:

【参考方案1】:

尝试悬停看看是否有帮助:

$("#featuredImage").hover(function()
         $(this).animate( backgroundPositionX:"100%");
         $("#featuredText").show("slide" , direction: "right");
     ,function()
        $(this).animate( backgroundPositionX:"0%" );
        $("#featuredText").hide("slide", direction: "right" ); 
     
);

【讨论】:

感谢您的快速回复,因为鼠标离开 9/10 失败,使用悬停现在失败 3/10,所以它绝对是朝着正确方向迈出的一步。有什么理由说明为什么这只会为 chrome 中的背景图像延迟触发? 很高兴知道它有帮助。做+upvote。对于 chrome 中的动画,看看这是否有帮助:***.com/questions/8870999/…

以上是关于JQuery 动画在 Chrome 中触发较晚的主要内容,如果未能解决你的问题,请参考以下文章

在jq中,当触发点击事件后,在此事件没完成之前,不能再触发点击事件,在事件完成后才能再次点击,该怎么弄

jQuery动画

jQuery UI 切换类动画在 Safari / Chrome 中没有动画 - 但在 Firefox 中动画?

jQuery 动画填充在 Chrome 中无法正常工作

jQuery .animate() 只在 Chrome 中动画,在其他浏览器中瞬时变化

JQ模拟触发事件