原生Js判斷元素是否隱藏

剛剛在看echo.js的源碼,因此此問題延伸自echo.js中的一行代碼chrome

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

通過本身實踐確實能夠使用這種方法來判斷當前元素是否被隱藏,包括經過設置父元素爲display:none以及本身自己爲none的狀況。可是若是是經過設置visibility:hidden則沒法檢測出。dom

overflow關於這個問題的討論優化

http://stackoverflow.com/ques...code

除了上面的方法還有這種element

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

這種方式也是須要手動判斷visibility。不過貌似offsetParent的方法十分緩慢,即便是新的chrome也沒法優化。get

相關文章
相關標籤/搜索