javascript – 真正可见的选择器

前端之家收集整理的这篇文章主要介绍了javascript – 真正可见的选择器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

jquery:visible和:hidden选择器有点误导,它们选择消耗文档中空间的元素,因此具有可见性的东西:hidden被归类为:可见即使它不是o_O

我需要能够只选择以下元素:真实可见,我可以用眼睛看到,例如,不透明度:0或可见性:隐藏

显然,对于一个元素在视觉上可见所有它的祖先也必须是可见的所以我假设一个递归的查找树是必要的.

这太贵了吗?
谁能建议一种可靠有效的方法来实现这一目标?

最佳答案
怎么样:

$.expr[':'].reallyVisible = function(node,idx){

   while(true){

      // should be faster than $(node).css()
      var css = document.defaultView.getComputedStyle(node,null);

      if(css.opacity == 0 || css.visibility == 'hidden')
        return false;

     node = node.parentNode;

     if(!node || node === document)
         break;
   }        

   return true;
}

http://jsfiddle.net/jxEFk/

猜你在找的jQuery相关文章