页面加载后5秒再加载JavaScript?

4
我尝试了以下方法:
<body id="myBody" onload = "setTimeout('a()', 5000)" / >

这是正确的方法吗?我想这样做的原因是因为我整个网站都在页面加载时进行动画效果(例如淡入)。仅使用我的JavaScript会使动画效果变得不流畅。

欢迎任何反馈意见。


你能否发布一个 jsfiddle 的代码示例? - FluffyJack
你的方法对我来说是正确的。 - bosari
5个回答

6

这段代码可以正常运行。只需要将您的时间设置为毫秒,并在loadAfterTime函数中编写JS代码:

<script>
 window.onload = function(){
   setTimeout(loadAfterTime, 5000)
};


function loadAfterTime() { 
// code you need to execute goes here. 
}
</script>

3
window.addEventListener("load", function () {
    animation();
    setTimeout(otherOperation, 5000);
}, false);

function animation() {}
function otherOperation() {}

也许你可以使用像这样的代码。

如果我复制这段代码并将其添加到文档头部的脚本标签中,它会正常工作,对吗? - The Javascript Noob

3

<body id="myBody" onload = "setTimeout(a, 5000)">
请尝试以下代码:


简单而有效,不确定为什么还没有被投票到顶部。 - Mwspencer

0
如果您正在使用jQuery,您的动画将具有回调函数,您可以使用它来延迟所有其他JavaScript事件的触发,如下所示:
$( window ).on( 'load', function () {

    $( '.someElements' ).animate({

        // properties to animate
    }, 300, function () {

        initScripts();
    });
});

function initScripts () {
  // call all other functions here
}

我使用CSS动画,但对于其他动画,我使用jQuery,并希望在页面淡入后5秒触发。 - The Javascript Noob

-1

浏览器在打开网页时总是加载所有的脚本(如果有的话)。因此,它取决于您何时调用JavaScript函数。 试试这个:

document.ready(function(){ 
 // your code
});
or
$(function(){
     // your code
});

两者都确保页面上的所有元素都已加载。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接