榴莲不好吃 2022-04-07 15:23 采纳率: 33.3%
浏览 35
已结题

如何判断一个节点是否可见

有一个节点,所有的父元素只要有display:none都有可能导致该节点不可见,除了遍历父元素的display,还有什么别的方法来判断当前节点是否可见.

  • 写回答

1条回答 默认 最新

  • 许失之 2022-04-07 16:20
    关注

    有一些属性似乎是有用的:
    当我的html如下:

    <div class="box">
          <div>
            <span> 213213132</span>
            <span id="span_test">
              我在这里
            </span>
          </div>
        </div>
    

    或者这样:

    <div class="box">
        <span id="span_test">
          我在这里
        </span>
    </div>
    

    CSS如下:

    .box {
      display: none;
    }
    

    js中输出console.dir(document.getElementById("span_test"))时,有以下几个属性是与正常可见状态明显不同的,参考菜鸟中对offsetParent的描述:

    节点对象,表示最近的祖先元素,在祖先元素display:none时返回null

    应当可以通过offsetParent: null这个值进行一个粗浅的判断,
    以及下面这些与offsetParent关联的值均为0时,也比较可疑~,但主要还是offsetParent吧
    offsetLeft: 0
    offsetTop: 0

    希望对你有所帮助,觉得有用的话麻烦动动小手点个采纳啦,多谢

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月14日
  • 创建了问题 4月7日

悬赏问题

  • ¥15 onlyoffice编辑完后立即下载,下载的不是最新编辑的文档
  • ¥15 求caverdock使用教程
  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。