剛剛在看echo.js的源碼,因此此問題延伸自echo.js中的一行代碼chrome
var isHidden = function(element) { return (element.offsetParent === null); };
通過本身實踐確實能夠使用這種方法來判斷當前元素是否被隱藏,包括經過設置父元素爲display:none
以及本身自己爲none
的狀況。可是若是是經過設置visibility:hidden
則沒法檢測出。dom
overflow關於這個問題的討論優化
除了上面的方法還有這種element
function isHidden(el) { var style = window.getComputedStyle(el); return (style.display === 'none') }
這種方式也是須要手動判斷visibility
。不過貌似offsetParent
的方法十分緩慢,即便是新的chrome也沒法優化。get