Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript onresize只触发一次_Javascript - Fatal编程技术网

Javascript onresize只触发一次

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

我有一个Javascript,它只启动一次,然后在再次调整大小后就不做任何事情了

我希望它在每次调整窗口大小时都运行该函数

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,我觉得很愚蠢,因为我没有意识到它仍然使用原始窗口宽度。这个问题现在已经解决了哈哈,没问题。我们有时都会犯愚蠢的错误。只要避免在不需要全局变量时使用它们,就可以省去一些麻烦!只要记住,当你给一个变量赋值时,它会一直保持这种状态,而不会被重新赋值。