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

Why doesnt this script animate (jquery) 3 seconds after page loads?

本文关键字:3秒 动画 jquery 加载 脚本 为什么      更新时间:2023-09-26

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

$(function() {
    var t = setTimeout(popmenu(), 3000);
    function popmenu() {
        $('#bcktop').animate({ 
                top : "+=150" 
            }, 150
        );            
    }       
});

您调用的是popmenu,而不是传递函数:

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

应该是:

var t = setTimeout(popmenu, 3000);

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

更改此项:

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

到此:

 var t = setTimeout(popmenu, 3000);

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

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

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

$(function() {
    var t = setTimeout("popmenu()", 3000);
});
function popmenu() {
    $('#bcktop').animate({ 
           top : "+=150" 
       }, 150
    );            
}