【发布时间】:2014-07-17 01:51:11
【问题描述】:
如果您将鼠标悬停在标题上,我有这个工作代码可以前后移动标题图标
jQuery('h1.heading').hover(
function(){
$icon = jQuery('.heading-icon', this);
if( ! $icon.is(':animated') ){
$icon.animate({ "margin-left" : "+=7px" }, 200, function(){
$icon.animate({ "margin-left" : "-=7px" }, 400, function(){
$icon.css('margin-left','auto');
} );
} );
}
},
function(){}
);
但是,如果您将鼠标悬停在标题上的速度更快(比动画完成的速度更快),它会出现错误并最终从原始位置移开。
我使用 onComplete 函数,我什至尝试使用! $('...').is(':animated'),如您在上面看到的,没有帮助,所以我想至少我会在动画结束后重置位置,这样即使它会出现错误,它也会在在所有动画结束后至少重置到原始位置......这只是部分工作并且仍然会出现错误并最终处于错误的位置......
那怎么了?
为什么会这样? jQuery UI enques 的抖动效果好吗?
注意:我不在乎动画是否运行了几次,目标是在(所有)动画结束时使其保持在正确的位置。
有什么帮助吗? :)
编辑
我终于在 JSFiddle 上重现了这个问题 - http://jsfiddle.net/yhJst/
==> 尝试在标题上更快地上下悬停
编辑2
只有一个标题时似乎不会发生...http://jsfiddle.net/scZcB/3/
【问题讨论】:
-
不使用
hover和一个空函数,为什么不使用mouseenter? -
adivise = 使用 html5/css3 动画而不是 javascript!
-
我无法重现问题或我不明白...jsfiddle.net/scZcB/1
-
@Eirenaios 不能使用 css3,疯狂的跨浏览器 ;)
-
@Karl-AndréGagnon mouseenter 解决问题了吗?我不这么认为...
标签: javascript jquery css animation jquery-animate