检查元素的可见性[重复]
Posted
技术标签:
【中文标题】检查元素的可见性[重复]【英文标题】:Checking visibility of an element [duplicate] 【发布时间】:2013-06-28 14:14:38 【问题描述】:我想检查一个元素是否可见,如果是,我想向下滚动到它。我正在尝试使用以下 jquery 来实现:
var j = jQuery.noConflict();
jQuery(document).ready(function($)
if(j('#element').css('display') == 'block')
j('body').scrollTo('#target');
;
);
但它不起作用。
【问题讨论】:
【参考方案1】:// jQuery no conflict mode
var j = $.noConflict();
// retain meaning of jQuery's handle (optional but makes it
// sometimes easier if you don't use one-letter assignments
// of jQuery)
(function($)
// document read
$(function()
// if element is visible (a visible #element was found)
if $('#element:visible').size() > 0)
// scroll to #target
$('body').scrollTo('#target');
);
)(j);
:visible
使它更容易。您不能只针对display=='block'
进行测试,除了检查visibility
设置之外,您还必须测试inline-block
和其他人。例如,元素可能有display:block:visibility:hidden
,但它不会变成:visible
。
【讨论】:
【参考方案2】:试试:
if($(element).is(":visible"))
参考这个帖子:How do I check if an element is hidden in jQuery?
【讨论】:
【参考方案3】:使用.is() 和:visible
var j = jQuery.noConflict();
jQuery(function($)
if($('#element').is(':visible'))
$('body').scrollTo('#target');
;
);
【讨论】:
以上是关于检查元素的可见性[重复]的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript JavaScript DOM元素可见性检查器
Selenium Webdriver 测试元素可见性的假阴性结果?