3 回答

TA貢獻1803條經驗 獲得超3個贊
你需要做
setTimeout(() => myMove(elem), 3000)
否則它會為任何myMove(elem)
返回設置超時,這意味著myMove(elem)
立即運行

TA貢獻1875條經驗 獲得超3個贊
所以基本上你需要這個:
// Run at DOM loaded
document.addEventListener("DOMContentLoaded", function() {
console.log('DOM is loaded');
// Move
setTimeout(function(){ myMove(elem); }, 3000)
});
或者
// Run at full page load
window.addEventListener("load", function() {
console.log('Page is loaded');
// Move
setTimeout(function(){ myMove(elem); }, 3000)
});

TA貢獻1815條經驗 獲得超6個贊
目前,這些myMove方法會立即執行。為避免這種情況,您可以使用 ES6 中支持的箭頭函數或移動myMove到一個函數
使用箭頭函數(在 ES6 中支持):
document.getElementById('body').addEventListener(
'load',
setTimeout(() => myMove(elem), 3000),
);
轉換為函數
document.getElementById('body').addEventListener(
'load',
setTimeout(function () {
myMove(elem);
}, 3000),
);
添加回答
舉報