Javascript onresize只触发一次
我有一个Javascript,它只启动一次,然后在再次调整大小后就不做任何事情了 我希望它在每次调整窗口大小时都运行该函数Javascript onresize只触发一次,javascript,Javascript,我有一个Javascript,它只启动一次,然后在再次调整大小后就不做任何事情了 我希望它在每次调整窗口大小时都运行该函数 var ld = document.getElementById('loading'), w = document.body.clientWidth, m = document.getElementsByTagName('main')[0], mw = w - 140; document.addEventListener("DOMContentLoa
var ld = document.getElementById('loading'),
w = document.body.clientWidth,
m = document.getElementsByTagName('main')[0],
mw = w - 140;
document.addEventListener("DOMContentLoaded", function () {
'use strict';
ld.className += "loaded";
setTimeout(function () {ld.parentElement.removeChild(ld); }, 500);
window.addEventListener('resize', function () {
m.style.width = mw + 'px';
});
});
m.style.width = (document.body.clientWidth - 140) + 'px';
假设尸体当时的宽度是900。现在,在当前范围中有以下变量:
劳工处:
w:900
m:
兆瓦数:760
加载页面DOM时,将绑定调整大小事件:
window.addEventListener('resize', function() {
m.style.width = mw + 'px';
});
它将每次调整窗口大小时主元素的css宽度设置为“760 px”。它总是会是760。相反,您希望在每次调整窗口大小时获得页面的宽度
var ld = document.getElementById('loading'),
w = document.body.clientWidth,
m = document.getElementsByTagName('main')[0],
mw = w - 140;
document.addEventListener("DOMContentLoaded", function () {
'use strict';
ld.className += "loaded";
setTimeout(function () {ld.parentElement.removeChild(ld); }, 500);
window.addEventListener('resize', function () {
m.style.width = mw + 'px';
});
});
m.style.width = (document.body.clientWidth - 140) + 'px';
@PHPglue他们删除了加载图标,而不是页面内容。他们的问题与ld元素完全无关。问题在于resize事件。是的,ld是加载div,m是我正在更改的元素的宽度。它不是未定义的,因为resize事件第一次工作,但之后它不会再更改。TYSM,我觉得很愚蠢,因为我没有意识到它仍然使用原始窗口宽度。这个问题现在已经解决了哈哈,没问题。我们有时都会犯愚蠢的错误。只要避免在不需要全局变量时使用它们,就可以省去一些麻烦!只要记住,当你给一个变量赋值时,它会一直保持这种状态,而不会被重新赋值。