jQuery心跳动画崩溃

jQuery heartbeat animation crashes

本文关键字:崩溃 动画 心跳 jQuery      更新时间:2023-09-26

我正在尝试用jQuery制作心跳动画,但它有一些我不理解的行为。

function pulse() {
    var target = $('body');
    target.animate({
        'font-size': '100.2%',
            'background-size': '230%'
    }, 200).delay(1600)
        .animate({
        'font-size': '100.1%',
            'background-size': '200%'
    }, 200, function () {
        window.setTimeout(pulse(), 4000);
    }).delay(200);
}

小提琴
在我看来,setTimeout(pulse(), 4000);是立即执行的,而不管我使用的超时。而且,当我在手机上查看它时,它会在短时间内崩溃。

我不太熟悉jQuery延迟方法,但我做错了什么?我不确定我是否正确阅读了自己的代码:)

编辑:
更新的Fiddle
:这是我的其他代码,崩溃的移动设备'点击文档静音'代码崩溃它。你能帮我看一眼,然后告诉我有没有什么东西会使手机崩溃吗?

setTimeout(pulse(), 4000);应为setTimeout(pulse, 4000);

注意pulse后面没有括号。

这是因为当括号出现时,它意味着函数应该求值(这是导致它立即执行的原因)。如果没有它们,它是对作为参数传递给setTimeout的函数的引用,并且只有在setTimeout选择执行它时才会执行,这正是您想要的。