You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript读取CSS元素宽度 实现宽度达标后隐藏指定元素

现有代码存在的问题

  • 选择器写法错误:document.querySelector("Disk1") 无法匹配到对应元素,若Disk1是类名需写为.Disk1,是ID需写为#Disk1
  • getElementsByClassName返回的是类数组的HTMLCollection集合,不能直接调用.style修改样式,需要取出集合内的单个元素再操作
  • 代码仅在页面加载时执行1次,若后续VarDisk1的宽度发生动态变化(比如窗口缩放、内容更新),无法实时检测触发隐藏逻辑

修复后的实现方案

如果需要宽度变化时自动触发状态更新,推荐用ResizeObserver监听元素尺寸变化,实现代码如下:

<script>
    // 修正选择器,根据实际元素的类/ID替换选择器内容
    const VarDisk1 = document.querySelector("#Disk1"); // 假设Disk1是ID,类名的话改为.Disk1
    const VarDisk2 = document.querySelector(".Disk2"); // 直接取单个Disk2元素,需要匹配多个的话可以用querySelectorAll再遍历

    // 封装宽度检测逻辑
    function checkDiskWidth() {
        const disk1Width = VarDisk1.offsetWidth;
        if (disk1Width > 70) {
            VarDisk2.style.display = "none";
        } else {
            // 宽度小于等于70时恢复显示,不需要的话可以删掉这段逻辑
            VarDisk2.style.display = "block";
        }
    }

    // 页面加载时先执行一次判断
    checkDiskWidth();

    // 监听VarDisk1的尺寸变化,动态触发判断
    const resizeObserver = new ResizeObserver(checkDiskWidth);
    resizeObserver.observe(VarDisk1);
</script>

如果你的场景里VarDisk1的宽度只会在窗口缩放时变化,也可以用监听window.resize事件替代ResizeObserver。

内容的提问来源于stack exchange,提问作者Nikoloz Mchedlishvili

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 00:18:03