【问题标题】:Jquery hover and animateJquery悬停和动画
【发布时间】:2012-06-17 14:06:28
【问题描述】:

My Code

我有一个 div,当您将鼠标悬停在它上面时会显示不同的浏览器,如果它们受支持,则在 css 中完成。但是,我也想让它们使用我正在工作的 jquery 进行动画处理。

但是,如果您将鼠标快速移动到悬停区域上,然后将其悬停在该区域上,该动画将不会重新触发。您必须将鼠标移到很远的地方,然后将鼠标悬停在它上面。我发现重现此问题的最佳方法是将鼠标放在其上方并快速将鼠标悬停在其上并再次悬停几次。

我怀疑原因是 jquery 仍然认为鼠标已经结束,即使 css 隐藏它并说它不是。我还认为必须将鼠标移远是时间相关而不是距离,但再次不确定。我还尝试了 .mouseover()、.hover() 和 .mouseenter(),其中 .mouseenter() 似乎表现最好。

这是可疑的行为吗?这并不完全是“破坏”,但我希望这种效果能够发挥作用。如果这是预期的行为,css3 动画是否能够复制我想要的效果?

另外作为旁注,如果您查看了小提琴,我应该考虑添加其他浏览器吗? (个人观点还可以,但如果有任何浏览器偷偷地变得更受欢迎的话,还有更多)

【问题讨论】:

    标签: jquery performance css jquery-animate


    【解决方案1】:

    你可以通过添加 stop() 来解决这个问题

    $(this).stop().animate({'width':'25px'},500);
    

    更多信息在这里:http://api.jquery.com/stop/

    【讨论】:

    • 哦,所以这可能是与动画有关的时间问题?好吧,谢谢,现在工作好多了:)
    【解决方案2】:

    我认为如果您没有停止最后一个动画,这种情况经常发生,我认为您可以使用这样的方式解决该问题。

     $(this).stop().animate( /*your animation*/ );
    

    有时你应该检查所有元素,而不仅仅是动画,因为我记得有一些用户遇到问题,他们只是按 Enter 键就停止了 javascript 验证(那是我使用 VTiger 的时候)。

    这个链接有一些关于它的信息http://www.learningjquery.com/2009/01/quick-tip-prevent-animation-queue-buildup

    总结一下,我认为有很多未知的浏览器,例如 midori、maxthon,以及一些其他在 linux 中使用的浏览器,例如 konqueror 和其他一些。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-02
      • 1970-01-01
      相关资源
      最近更新 更多