jquery .animate() 和 .done()

标签 jquery jquery-animate

我试图在动画完成后启动一个功能,但无法使其工作。

这是我的代码:

var count = 3;
var timer = setInterval(function () {
    handleTimer(count);
}, 1000);

function endCountdown() {
    $('.begin-btn').html("GO!");
}

function handleTimer() {
    if (count === 0) {
        clearInterval(timer);
        endCountdown();
    } else {
        $('.begin-btn').html(count);
        count--;
    }
}


$('.begin-mrsuper').delay(500).animate({
    "left": "4px"
}, "slow").promise().done(function (handleTimer) {});

我尝试过:

    $('.begin-mrsuper').delay(500).animate({"left":"4px"}, "slow").promise().done(function(){ handleTimer(); });

但是 3,2,1,GO 计时器在动画结束之前启动,有什么想法吗?

最佳答案

setInterval部分包装到一个函数中,否则一旦调用它就会执行。

var count = 3, timer = null;
var foo = function() {
    timer = setInterval(function () {
        handleTimer(count);
    }, 1000);
};

function endCountdown() {
    $('.begin-btn').html("GO!");
}

function handleTimer() {
    if (count === 0) {
        clearInterval(timer);
        endCountdown();
    } else {
        $('.begin-btn').html(count);
        count--;
    }
}


$('.begin-mrsuper').delay(500).animate({
    "left": "4px"
}, "slow").promise().done(foo);

关于jquery .animate() 和 .done(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22547888/

相关文章:

Javascript隐藏我选择的div

javascript - 如何检测移动设备并获取用户代理信息,仅发送一次并将该信息保存到服务器上的数据库?

javascript - 在 JavaScript/jQuery 中连接字符串?

jquery - Firefox/IE 不使用 jQuery 对 padding-left 进行动画处理(只能让 Chrome 进行动画处理)

位置为 "fixed"的菜单上的 jquery 动画填充

javascript - jQuery 换行不适用于输入

javascript - 使用特定过渡从左到右动画元素

jquery - 关闭动画 Jquery Accordion

javascript - 尝试实现正文标签颜色更改

javascript - getModifierState() 作为错误返回