当 twitter 引导响应导航栏处于折叠状态时,我在检测导航链接的可见性时遇到问题。
问题的根源在于 .collapsed div 设置了溢出:隐藏规则。这意味着虽然导航 ul 的维度不为零,但它仍然是隐藏的,因为 .collapse 容器的高度为零(在关闭状态下设置在 style 属性中)。
问题是,如果#some-nav-link 是 .nav ul 中的 li 项之一,它将与 $('#some-nav-link :visible') 匹配,因为它不知道该元素是被溢出隐藏。
是否有一种万无一失的方法来检查可以解释这一点的元素的可见性?
我尝试使用 li $.fn.offset() 方法依赖 elementFromPoint,但在 li 有一些填充的情况下它不够好,例如,在这种情况下 elementFromPoint 返回 li 的父级之一。
注意 - 我的代码是相关网站上的第三方代码,因此我无法更改导航栏的工作方式。
重要更新 我正在寻找一个独立于 twitter bootstrap crash 工作机制的解决方案。这是确定元素可见性问题的一般解决方案,该元素位于溢出:隐藏元素的子元素的溢出部分中。我觉得最好将其与引发此问题的具体问题联系起来,但如果当前问题将被视为令人困惑,我愿意相应地对其进行修改。我希望这次更新就足够了。
感谢阅读,我期待一些聪明的解决方案!
这是一个显示检查的小提琴:折叠时可见返回true - http://jsfiddle.net/VDR3Y/