【问题标题】:Jquery if a div is visible on page?Jquery是否在页面上可见div?
【发布时间】:2013-05-08 22:52:49
【问题描述】:

我正在尝试制作一个单页网站。

作为导航栏的一部分,我希望它突出显示某个链接如果某个其他 div 在页面上可见。

我感觉 jquery 会做到这一点。

Here is an example of what i mean. 请注意,如果导航链接链接到的部分在页面上可见,导航链接如何突出显示

谁能帮忙??

【问题讨论】:

  • 我已经尝试搜索和搜索如果可见则更改的 jquery 代码,但我不断获取代码是否存在 css 属性“可见”,而不是 div 是否在页面上字面上可见跨度>
  • 我认为您实际上正在寻找这样的东西:stackoverflow.com/questions/2896869/…

标签: jquery html css


【解决方案1】:

其他答案将返回 true 如果元素在 DOM 中可见 - 即使它们的样式为 display:none 而实际上在视觉上并不“可见”。

如果您想查看某个元素当前是否在视口中可见,一种解决方案可能是使用 Viewport Selectors for jQuery. 进行研究

然后,您可以使用 $(":in-viewport") 选择器检查元素当前是否在视口中(即物理上可见)。

Here's an example 正在使用中。

【讨论】:

  • 那么可以用viewselector代码代替.is(visible)吗?
  • @CaedanLavender 是的,如果您正在检查实际在视口中的元素。我将添加一个示例链接。
【解决方案2】:

您可以使用 :visible 来检查某些内容是否可见。

检查元素是否可见:

if($(element).is(':visible'))

http://api.jquery.com/is/

你也可以选择可见的

var $list = $('li:visible');

您还可以过滤现有的 jQuery 元素数组

var $list = $('li');
var $visible = $list.filter(':visible');

http://api.jquery.com/filter/

显然,您可以将其应用于任何类型的元素。

【讨论】:

  • 如果元素是字面上可见的,或者只是存在 css 属性“可见”,我已经尝试过类似于你给出的代码的东西。
  • 根据我的经验,它适用于显示 CSS 的元素:无
  • 如果它是具有 display:none 的元素的子元素,它也可以工作
  • 如果页面上的 div 字面上可见,我需要它来突出显示链接,css "display: none;"不会在网页中使用。
  • 哦,我明白了,如果用户真的能够看到它?
【解决方案3】:

你可以试试:

if($('selector').is(':visible')){
    $('selector2').show();
}

还有一个.is('hidden')可以使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多