gpt4 book ai didi

Javascript onresize 仅触发一次

转载 作者:行者123 更新时间:2023-12-03 04:49:45 26 4
gpt4 key购买 nike

我的 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';
});
});

最佳答案

var ld = document.getElementById('loading'),
w = document.body.clientWidth,
m = document.getElementsByTagName('main')[0],
mw = w - 140;

假设主体当时的 clientWidth 为 900。现在,您在当前范围内拥有以下变量:

  • ld: <some DOM element>
  • w: 900
  • m: <main element>
  • mw: 760

当页面 DOM 加载时,您绑定(bind)调整大小事件:

window.addEventListener('resize', function() {
m.style.width = mw + 'px';
});

每次调整窗口大小时,都会将主元素的 css 宽度设置为“760 px”。它始终是 760。您想要的是每次调整窗口大小时获取页面的宽度。

m.style.width = (document.body.clientWidth - 140) + 'px';

关于Javascript onresize 仅触发一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42709329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com