【发布时间】:2013-08-22 19:00:18
【问题描述】:
我的页面上有一行图标,我想在用户将光标悬停在它们上方时创建波浪动画效果。
我正在使用这个基本代码作为初学者:
$('#icons > li')
.hover(function() {
$(this).animate({
'top': (-1 * hover_distance)
}, hover_speed);
}, function() {
$(this).animate({
'top': 0
}, hover_speed);
})
;
而且看起来还不错。但是有一个问题:当您将光标疯狂地移动到图标上时,每个图标的动画队列都充满了许多动作(向上、向下、向上、向下、向上、向下等),并且图标在向上和向上移动。即使您停下来与图标进行交互,也会下降很多次。
我希望我的图标只完成一个循环(上下),然后停止动画。我正在为此寻找一个最优雅(简短、简单、轻便)的解决方案。
PS:你不能只使用 stop(),因为它会阻止“波浪效应”(即当你在图标上快速移动光标并且它们向上移动时像真正的波浪一样向下响应。
PPS:这是 JS-Fiddle: http://jsfiddle.net/nZqLy/3/
【问题讨论】:
-
您可以将
hover事件应用于不移动的父元素,然后为其子元素设置动画。
标签: javascript jquery animation