判断页面内元素是否可见

发布 : 2024-11-16

var ele = document.getElementById('someId')

  1. 判断网页中的Element元素是否可见
    1
    ele.checkVisibility();
    此方法目前只有 谷歌 105 版本 和 Firefox 106版本 以后的浏览器支持,Safari全系不支持。
  2. 判断 ele.offsetParent 是否为null。
    1
    2
    3
    if (d.offsetParent === null) { 
    console.log(' the element currently is invisible');
    }
    原文链接:https://stackoverflow.com/questions/19669786/check-if-element-is-visible-in-dom
  3. 判断 offsetWidth 和 offsetHeight 同时等于0
    1
    2
    3
    function isvisible(ele) {
    return ele.offsetWidth > 0 || ele.offsetHeight > 0;
    }

总结

1
2
3
4
5
6
7
// 目前观测只支持非占位隐藏, dispaly:none; 
// 占位隐藏可以通过 ele.style 去判断对应的 css
function dom_visibility(ele) {
if(!ele) return false;
if(ele.checkVisibility) return ele.checkVisibility();
return (ele.offsetWidth > 0 || ele.offsetHeight > 0) || !!ele.offsetParent
}
本文作者 : 萧逸雨
原文链接 : http://qiubo.ink/2024/11/16/判断页面内元素是否可见/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!