js如何判断element 是否隐藏

根据MDN文档的说明, 以下三种情况 HTMLElement.offsetParent 会返回 null

  • 该节点或其父节点display属性为 none
  • 该节点的 position 属性设为 fiexed
  • 该节点为

所以可以根据 HTMLElement.offsetParent 来判断改节点是否隐藏

function isHidden(el) {
    return (el.offsetParent === null)
}

如果你要判断的节点恰好 position:fiexed,那么可以通过window.getComputedStyle() 判断:

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

相比第一种方案,第二种会慢很多,如果要做重复的判断,不建议使用第二种

你可能感兴趣的:(js如何判断element 是否隐藏)