0

使用下面的代码,我发现 div 是否不可见。

if(document.getelementbyid("header").style.visible){
  alert("Yes");
}
else{
  alert("No");
}

检查可见属性,因为在后面的代码中header.visible = false是根据条件定义的。但它总是返回“否”。请告诉正确的方法。

4

5 回答 5

2

没有可见属性,而是可见性,它可以具有以下值:

visible
hidden
collapse

请参阅MDN 文章

于 2013-05-17T11:26:41.283 回答
2

您可以使用 display 和 visibility 来检查元素是否可见

    var elem = document.getelementbyid("header");
    if(elem .style.visibility == "hidden" || elem.style.display == 'none'){
        alert("No");  // element is visible
    }
    else{
         alert("Yes");
    }
于 2013-05-17T11:27:37.633 回答
1

请记住,style.visiblejavascript 中没有。根据您如何隐藏 div,您需要检查

if(document.getelementbyid("header").style.visibility != "hidden") {
   //visible
} else {
   //not visible
}

或者

if(document.getelementbyid("header").style.display != "none") {
   //visible
} else {
   //not visible
}

同时,上面的代码只会检查确切的元素是否显示不显示或隐藏可见性。但同时,当父元素不可见时,它会返回可见。因此,您可以执行以下操作:

var element = document.getelementbyid("header");
if(element.offsetWidth > 0 || element.offsetHeight > 0) {
   //visible
} else {
   //not visible
}

如果元素不可见,浏览器总是返回 0 宽度和高度

于 2013-05-17T11:26:08.673 回答
1

如果您使用 jQuery:

var isVisible = $("#header").is(":visible");
于 2013-05-17T11:29:13.673 回答
0

CSS 属性是visibility. 请记住,如果属性是使用 CSS 而不是属性设置的,则该属性可能不包含您期望的值style

于 2013-05-17T11:29:58.160 回答