检测一个元素是否可见
这个问题在这里已经有了答案:
您正在寻找:
.is(':visible')
尽管你应该改变你的选择器来使用jQuery,因为你在其他地方使用它:
if($('#testElement').is(':visible')) {
// Code
}
需要注意的是,如果目标元素的父元素中的任何一个隐藏,那么子节点上的.is(':visible')
将返回false
(这很有意义)。
jQuery 3
:visible
是一个相当慢的选择器,因为它必须遍历DOM树检查一堆元素。 jQuery 3有个好消息,但是,这篇文章解释了(Ctrl + F代表:visible
):
感谢Paul Irish在Google的一些侦探工作,我们发现了一些情况,当我们可以在同一个文档中多次使用像visible这样的自定义选择器时,可以跳过一堆额外的工作。 那个特例现在比现在快17倍!
请记住,即使有了这种改进,诸如visible和hidden之类的选择器也可能很昂贵,因为它们依赖于浏览器来确定元素是否实际显示在页面上。 这可能需要在最糟糕的情况下完全重新计算CSS样式和页面布局! 尽管我们在大多数情况下并未阻止它们的使用,但我们建议测试您的页面以确定这些选择器是否会导致性能问题。
进一步扩展到您的特定用例,有一个名为$.fadeToggle()
的内置jQuery函数:
function toggleTestElement() {
$('#testElement').fadeToggle('fast');
}
没有必要,只需在元素上使用fadeToggle()
:
$('#testElement').fadeToggle('fast');
这是一个演示。
if($('#testElement').is(':visible')){
//what you want to do when is visible
}
链接地址: http://www.djcxy.com/p/2373.html