2012-06-17 162 views
1

My CodejQuery的悬停和动画

我有一个div,当你将鼠标悬停在它显示了不同的浏览器,如果他们的支持,在CSS完成。不过,我也想让他们用我正在工作的jquery生成动画。

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

我怀疑,原因是jQuery仍然认为鼠标已经结束,即使css隐藏它,并说它不是。我还认为,将鼠标移到远处是与时间有关而不是距离,但又不确定。我也试过.mouseover(),.hover()和.mouseenter(),而.mouseenter()似乎表现得最好。

这是否涉嫌行为?这并不完全是'破坏',但我希望这种效果起作用。如果这是预期的行为,可能css3动画能够复制我想要的效果?

另外作为一个方面说明,如果您查看小提琴,我应该考虑添加任何其他浏览器? (个人观点不错,但更多的,如果任何浏览器已经悄悄变得更受欢迎)

回答

2

就可以解决这个加入终止()

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

此处了解详情:http://api.jquery.com/stop/

+0

哦,所以它可能是一个与动画有关的时间问题?非常感谢,现在工作好多了:) – Fewfre

0

我认为这如果你还没有停止最后一个动画,经常会发生,我认为你可以像这样解决这个问题。

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

有时那是后话,你应该检查所有的元素不只是在动画,因为我记得曾与已停止只是击中进入JavaScript验证某些用户的问题(当我与vtigerCRM的工作是)。

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

一些资料得出结论,我认为是有一堆不知名浏览器,如绿,傲游,并在像Konqueror和其他一些Linux中一些人。