javascript - 动画完成后如何停止velocity.js动画?

标签 javascript jquery css animation velocity.js

我正在使用 velocity.js 创建一个脉动效果作为 IE9 的后备,(请参见 box2 的 CSS 动画) 当鼠标在动画完成之前离开框(停留直到脉冲增长而不是移出)时,脉动元素保持可见。 https://jsfiddle.net/02vu80kc/1/

        $(".box").hover(function () {

            $(this).find('.effect-holder').velocity({
                scale: [1.2, 0.9],
                opacity: [1, 0]
            }, {
                easing: 'ease-out',
                duration: 800,
                loop: true
            }, {
                queue: false
            }).velocity("reverse");

        }, function () {

            $(this).find('.effect-holder').velocity("stop");


        });

效果完成后如何在鼠标移出时停止动画?

我正试图远离 .removeAttr('style') 并希望动画完成而不是停止。感谢您的帮助。

如果我用这个

$(this).find('.effect-holder').velocity('reverse').velocity("stop");

然后快速移动鼠标,动画再次开始,有时会在中间暂停。

最佳答案

要么使用.velocity("finish")而不是 .velocity("stop") ,或者有不同的开和关动画,两个动画调用"stop" (即,捕捉鼠标正确移动的时间)。

另请注意 {... loop:true ...}意味着第一个动画永远不会结束,因此 "stop"将在停止后立即发生“反转”(调用 .velocity("stop", true) 以防止这种情况发生)

编辑:在 "finish" 上打开问题错误 - https://github.com/julianshapiro/velocity/issues/495

edit2:添加简单示例:

$("box").hover(function() {
    // over
    this.velocity("stop", true).velocity({
        scale: [1.2, 0.9]
    }, {
        duration: 800,
        loop: true
    })
}, function() {
    // out
    this.velocity("stop", true).velocity({
        scale: 0.9
    }, {
        easing: "ease-out",
        duration: 800
    })
});

关于javascript - 动画完成后如何停止velocity.js动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32852526/

相关文章:

javascript - 使用 Javascript 验证 HTML 下拉菜单?

javascript - 使用 javascript 的剪刀石头布游戏

javascript - 如何处理前端的标准错误对象?

javascript - 获取两个范围内的数字并进行计算?

javascript - 使用 set() 时,Firebase 不会添加完整的对象

javascript - 在加载外部脚本之前不要执行其余代码

javascript - jQuery 下拉切换查找事件 li 并保持下拉列表打开

javascript - JavaScript 刷新时出现 Mysqli_query 错误

javascript - jquery autocomplete 如何设置标签以及如何获取值?

html - 添加仅用于 bigcommerce 主页的链接标签