javascript - 图标行上的 jQuery 波浪动画

标签 javascript jquery animation

我的页面上有一行图标,我想在用户将光标悬停在图标上时创建波浪动画效果。

我正在为初学者使用这个基本代码:

$('#icons > li')
    .hover(function() {
        $(this).animate({
            'top': (-1 * hover_distance)
        }, hover_speed);
    }, function() {
        $(this).animate({
            'top': 0
        }, hover_speed);
    })
;

看起来不错。但是有一个问题:当你疯狂地将光标移到图标上时,每个图标的动画队列都会充满许多 Action (向上、向下、向上、向下、向上、向下等),并且图标会上升和上升即使您停止与图标交互,也会多次按下。

我希望我的图标只完成一个循环(向上和向下)然后停止动画。我正在为此寻找最优雅(简短、简单、轻便)的解决方案。

PS:而且您不能只使用 stop(),因为它会防止“波浪效应”(即,当您在图标上快速划动光标时,它们向上移动并作为回应,就像真正的波浪一样)。

PPS:这是 JS-Fiddle: http://jsfiddle.net/nZqLy/3/

最佳答案

您可以在动画之前使用.stop() 来停止当前动画或使用.stop(true) 来取消队列中的所有动画。 http://jsfiddle.net/nZqLy/9/

$('#icons > li').hover(function() {
  $(this).stop(true).animate({
    'top': (-1 * hover_distance)
  }, hover_speed);
}, function() {
  $(this).animate({
    'top': 0
  }, hover_speed);
});

关于javascript - 图标行上的 jQuery 波浪动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18388784/

相关文章:

javascript - Python WebSocket 不工作

javascript - 如果输入文本为空,如何设置默认文本?

javascript - 如果一个元素正在被动画化,我如何用 jQuery 找出?

python - 向动画散点图添加图例

ios - UIView animateWithDuration 等到动画结束

带有空格和 % 的 Javascript window.open url

javascript - 使用 25,000 行加载 jqGrid 时出现问题

javascript - 固定位置高度按百分比大于浏览器窗口

javascript - jquery 验证插件需要精确的值

javascript - 方向航点未在 Google map 上显示所有航点