原生Js推断元素是不是隐蔽

方才在看echo.js的源码,所以此题目延长自echo.js中的一行代码

var isHidden = function(element) {
    return (element.offsetParent === null);
};

经由本身实践确切能够运用这类要领来推断当前元素是不是被隐蔽,包含经由过程设置父元素为display:none以及本身本身为none的状况。然则如果是经由过程设置visibility:hidden则没法检测出。

overflow关于这个题目的议论

http://stackoverflow.com/ques…

除了上面的要领另有这类

function isHidden(el) {
    var style = window.getComputedStyle(el);
    return (style.display === 'none')
}

这类体式格局也是须要手动推断visibility。不过貌似offsetParent的要领非常迟缓,即使是新的chrome也没法优化。

    原文作者:上啊比卡丘
    原文地址: https://segmentfault.com/a/1190000009338643
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞