检查元素是否可见,父元素隐藏在DOM中
Check if element is visible which parent is hidden in DOM
CSS:
#test {
visibility: hidden;
width: 400px;
height: 400px;
background-color: orange;
}
#subTest {
width: 100px;
height: 100px;
background-color: gray;
}
HTML:
<div id="test">
<div id="subTest"></div>
</div>
JavaScript:
$(function() {
var test = document.getElementById('test'),
subTest = document.getElementById('subTest');
console.log("getClientRects,length = " + subTest.getClientRects().length);
console.log("offsetParent = " + subTest.offsetParent);
console.log("JQuery isVisible = " + $("#subTest").is(":visible"));
});
结果:
getClientRects,length = 1
offsetParent = [object HTMLBodyElement]
JQuery isVisible = true
似乎所有的方法都是无效的。
那么,如何检查#subTest是否可见呢?
此
$('#subTest').css('visibility') == 'hidden' // true
因为父级是hidden
,它将级联到子级。
我认为这是不可能的。它们被称为级联样式表是有原因的。父元素和子元素之间存在语义。
但是,作为变通方案,您可以克隆它并显示克隆。不知道你为什么要这样做。我认为你更有可能需要更改标记,以便标记更有效地适应用例。
然而,既然我提到了它。这是…
代码:
var someElement = jQuery('#subDiv').clone();
someElement.appendTo('someOtherElement');
希望这能有所帮助,
Tim
相关文章:
- 切换一个元素并将其余元素隐藏在同一包装类下
- CSS 动画在元素隐藏时暂停
- 检查元素是否可见,父元素隐藏在DOM中
- 粘性导航元素 - 隐藏然后显示
- show() 在元素隐藏时不起作用
- 通过可见性隐藏和显示元素:隐藏/可见
- 如何从检查页面元素隐藏Blogger中的javascript代码
- 基于页面元素隐藏部分html代码
- 使用jQuery和select元素隐藏动态类
- Jquery Div元素隐藏
- 当指针在父元素上时,Boostrap工具提示会在父元素隐藏之前触发悬停事件
- 聚焦元素隐藏在固定菜单后面
- 将jQuery中的元素隐藏在表中
- 元素.隐藏变量可移植性
- 如何使一个元素隐藏在向下滚动的wordpress
- 当父元素隐藏时,如何使用jquery show()
- 高度:自动计算错误,如果元素隐藏时dom加载,然后显示
- Javascript元素隐藏不起作用
- 使元素隐藏后直接显示完成jquery
- HTML表单元素隐藏的onload javascript