我的页面上有一行图标,当用户将光标悬停在它们上方时,我想创建一个波浪动画效果。
我正在使用这个基本代码作为初学者:
$('#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/