JAVASCRIPT - "Code inside event" 超时? o.O
JAVASCRIPT - "Code inside event" timeout? o.O
我的页面中有这个活动
window.addEventListener("load", function(){
var load_screen = document.getElementById("load_screen");
document.getElementsByTagName("BODY")[0].setAttribute("class", "loaded");
})
wich 在加载页面时为正文 class="loaded"
添加了一个属性,但由于我添加了一个很酷的预加载器效果,我想让事件在显示真实页面之前等待 3-5 秒,即使它已经满载(当然,如果没有满载,还要等更多)。
这在某种程度上可能吗?
将 set 属性包装在 setTimeout 函数中,以便在设定的时间后执行。
window.addEventListener("load", function(){
var load_screen = document.getElementById("load_screen");
setTimeout(function(){document.getElementsByTagName("BODY")[0].setAttribute("class", "loaded");}, 3000);
})
使用window.setTimeout
window.addEventListener("load", function(){
window.setTimeout(
function() {
var load_screen = document.getElementById("load_screen");
document.getElementsByTagName("BODY")[0].setAttribute("class", "loaded");
},
3000);
})
如果您想要延迟 最小值 5 秒,您可以在建立事件处理程序时捕获时间(即,在"load" 事件已触发),然后在处理程序中再次检查时间。
var startTime = Date.now();
window.addEventListener("load", function(){
var load_screen = document.getElementById("load_screen");
setTimeout(function() {
document.getElementsByTagName("BODY")[0].setAttribute("class", "loaded");
}, Math.max(0, 5000 - (Date.now() - startTime)));
});
也没有理由使用 .setAttribute()
来设置 class:
document.getElementsByTagName("BODY")[0].className = "loaded";
就我个人而言,我要么使用 .classList
设施,要么走老路并添加新的 class:
document.getElementsByTagName("BODY")[0].className += " loaded";
这样你就不会踩到 <body>
.
上可能(可能在将来)的任何其他 classes
我的页面中有这个活动
window.addEventListener("load", function(){
var load_screen = document.getElementById("load_screen");
document.getElementsByTagName("BODY")[0].setAttribute("class", "loaded");
})
wich 在加载页面时为正文 class="loaded"
添加了一个属性,但由于我添加了一个很酷的预加载器效果,我想让事件在显示真实页面之前等待 3-5 秒,即使它已经满载(当然,如果没有满载,还要等更多)。
这在某种程度上可能吗?
将 set 属性包装在 setTimeout 函数中,以便在设定的时间后执行。
window.addEventListener("load", function(){
var load_screen = document.getElementById("load_screen");
setTimeout(function(){document.getElementsByTagName("BODY")[0].setAttribute("class", "loaded");}, 3000);
})
使用window.setTimeout
window.addEventListener("load", function(){
window.setTimeout(
function() {
var load_screen = document.getElementById("load_screen");
document.getElementsByTagName("BODY")[0].setAttribute("class", "loaded");
},
3000);
})
如果您想要延迟 最小值 5 秒,您可以在建立事件处理程序时捕获时间(即,在"load" 事件已触发),然后在处理程序中再次检查时间。
var startTime = Date.now();
window.addEventListener("load", function(){
var load_screen = document.getElementById("load_screen");
setTimeout(function() {
document.getElementsByTagName("BODY")[0].setAttribute("class", "loaded");
}, Math.max(0, 5000 - (Date.now() - startTime)));
});
也没有理由使用 .setAttribute()
来设置 class:
document.getElementsByTagName("BODY")[0].className = "loaded";
就我个人而言,我要么使用 .classList
设施,要么走老路并添加新的 class:
document.getElementsByTagName("BODY")[0].className += " loaded";
这样你就不会踩到 <body>
.