如何判断一个特定的DOM元素是否可见?

发布于 2024-12-03 10:32:37 字数 219 浏览 1 评论 0原文

使用 jQuery,确定特定元素是否可见的最简单方法是什么?我的意思不是在当前视口内可见,而是在页面上可见。

理想情况下,如果元素或其任何祖先具有 CSS 规则(例如 display: nonevisibility: hide),则该函数应返回 false。无需担心overflow:hidden

Using jQuery, what is the easiest way to determine whether a particular element is visible? I don’t mean visible within the current viewport, but on the page.

Ideally, the function should return false if the element or any of its ancestors has a CSS rule such as display: none or visibility: hidden. No need to worry about overflow: hidden.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

半﹌身腐败 2024-12-10 10:32:37

:visible 选择器与 is 方法结合使用。

if($('elementSelector').is(':visible')){
   //Element is visible
}

Use :visible selector with is method.

if($('elementSelector').is(':visible')){
   //Element is visible
}
失退 2024-12-10 10:32:37

您可以使用 is() 方法。

$('#element').is(':visible');

You can use is() method.

$('#element').is(':visible');
十年不长 2024-12-10 10:32:37

$('div:visible'); 将返回所有可见的 div

另外,值得注意的是 jQuery 1.3.2 变更日志:

在 jQuery 1.3.2 中,如果浏览器报告的 offsetWidth 或 offsetHeight 大于 0,则元素可见。这意味着如果元素的 CSS 显示为“none”,或其任何父/祖先元素的显示为“none” ",或者如果元素的宽度为 0 并且元素的高度为 0,则该元素将被报告为隐藏。

$('div:visible'); will return all visible divs.

Also, it's worth noting this section of the jQuery 1.3.2 changelog:

In jQuery 1.3.2 an element is visible if its browser-reported offsetWidth or offsetHeight is greater than 0. It means that if your element's CSS display is "none", or any of its parent/ancestor element's display is "none", or if the element's width is 0 and the element's height is 0 then an element will be reported as hidden.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文