为什么这个脚本在页面加载后3秒没有动画(jquery)?

时间:2012-02-03 21:09:44

标签: javascript jquery

我正在尝试为文档加载时隐藏的横幅(宽度100%,高度150px)设置动画(位置相对,顶部-150px)。我想在3秒后显示它,我做错了什么?这看起来很直接吗?

$(function() {
    var t = setTimeout(popmenu(), 3000);

    function popmenu() {

        $('#bcktop').animate({ 
                top : "+=150" 
            }, 150
        );            
    }       
});

4 个答案:

答案 0 :(得分:4)

您正在调用popmenu而不是传递函数:

var t = setTimeout(popmenu(), 3000);

应该是:

var t = setTimeout(popmenu, 3000);

答案 1 :(得分:1)

您希望将函数引用传递给setTimeout函数。通过发送类似this()的函数,您将该函数的返回值发送到setTimeout

改变这个:

 var t = setTimeout(popmenu(), 3000);

到此:

 var t = setTimeout(popmenu, 3000);

答案 2 :(得分:0)

您还可以使用jQuery .delay()函数:

$('#bcktop').delay(3000).animate({
  top: "+=150"
}, 150);

答案 3 :(得分:0)

在popmenu()周围添加引号并将function popmenu()放在$(function() { });之外修复它:

$(function() {
    var t = setTimeout("popmenu()", 3000);
});

function popmenu() {

    $('#bcktop').animate({ 
           top : "+=150" 
       }, 150
    );            
}