榴莲不好吃 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日

悬赏问题

  • ¥50 安装华大九天aether
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证