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),
);
添加回答
举报