根據(jù)MDN文檔的說明, 以下三種情況 HTMLElement.offsetParent 會返回 null
- 該節(jié)點或其父節(jié)點display屬性為 none
- 該節(jié)點的 position 屬性設為 fiexed
- 該節(jié)點為
<body>或<html>
所以可以根據(jù) HTMLElement.offsetParent 來判斷改節(jié)點是否隱藏
function isHidden(el) {
return (el.offsetParent === null)
}
如果你要判斷的節(jié)點恰好 position:fiexed,那么可以通過window.getComputedStyle() 判斷:
function isHidden(el) {
var style = window.getComputedStyle(el);
return (style.display === 'none')
}
相比第一種方案,第二種會慢很多,如果要做重復的判斷,不建議使用第二種