榴莲不好吃 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 django5安装失败
  • ¥60 ios系统storm sniffer 写入http规则加密如何破解?
  • ¥15 Java与Hbase相关问题
  • ¥15 后缀 crn 游戏文件提取资源
  • ¥15 ANSYS分析简单钎焊问题
  • ¥20 bash代码推送不上去 git fetch origin master #失败了
  • ¥15 LOL外服加入了反作弊系统,现在游戏录像rofl文件离线都无法打开
  • ¥15 在centos7安装conda
  • ¥15 c#调用yolo3 dll文件获取的数据对不上
  • ¥20 WPF 如何实现多语言,label 和cs(live Charts)中是否都能翻译