如何使用 . hide () 、.show () 或.toggle () 来切换元素的可见度 ?

如果元素可见或隐藏, 我如何测试 ?


当前回答

1 支架解决办法

用于确定一个元素在jquery 中是否可见的方法

<script>
if ($("#myelement").is(":visible")){alert ("#myelement is visible");}
if ($("#myelement").is(":hidden")){alert ("#myelement is hidden"); }
</script>

在 id “ mayement” 元素中所有可见的 diiv 子元素上循环 :

$("#myelement div:visible").each( function() {
 //Do something
});

被偷偷看

jquery 如何执行此特性 :

jQuery.expr.filters.visible = function( elem ) {
    return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
};

· 如何检查某一元素是否在屏幕外- css

使用元素.getting clientrect () 您可以很容易地检测到您的元素是否在您的视图( 屏幕上或屏幕下) 范围内 :

jQuery.expr.filters.offscreen = function(el) {
  var rect = el.getBoundingClientRect();
  return (
           (rect.x + rect.width) < 0 
             || (rect.y + rect.height) < 0
             || (rect.x > window.innerWidth || rect.y > window.innerHeight)
         );
};

然后,你们可以几种方式使用它:

// Returns all elements that are offscreen
$(':offscreen');

// Boolean returned if element is offscreen
$('div').is(':offscreen');

如果您使用角,请检查:不使用角的隐藏属性

其他回答

$( "div:visible" ).click(function() {
  $( this ).css( "background", "yellow" );
});
$( "button" ).click(function() {
  $( "div:hidden" ).show( "fast" );
});

api 文档: 可见选择器

可以创建函数以检查可见度/显示属性,以测量元素是否显示在 ui 中。

function checkUIElementVisible(element) {
    return ((element.css('display') !== 'none') && (element.css('visibility') !== 'hidden'));
}

工作小儿

演示式链接

$( 点击“ 点击' ” ) 。 点击( 函数 ) { $( 书 ) { $( 书 ) } toggle (' slow' , 函数 () {/ // 动画完成 ) 。 提醒 ($( 书 ) . is ( : : 可以看到 ) ); / lt; - - 如果隐藏, 如果可见假 ) , 则真实 ; } ; ; & lt; 鼠标; 标 src= "https:// upload. wikimedia. org/ wikipedia/ commons/8/ 87/ chrome_ icon_ 282011. 29. png" alt=" 宽度= 300"/ & gt; https://upload. / & gt;

来源(来自我的博客):

博客加插 nplay - jquery 工具和部件: 如何使用 jquery 查看元素是否隐藏或可见 ?

这些答案都没有涉及我所理解的问题, 也就是我正在寻找的问题, “我如何处理有可见度的项目:隐藏的?” 。 无论是: 可见的还是: 隐藏的, 都无法处理, 因为两者都在寻找文档中的显示。 据我所知, 没有选择器可以处理 cs 可见度。 这就是我是如何解决这个问题的( 标准拼写选择器, 可能有更压缩的语法 ) :

$(".item").each(function() {
    if ($(this).css("visibility") == "hidden") {
        // handle non visible state
    } else {
        // handle visible state
    }
});

使用类切换,而不是样式编辑.

使用指定用于“ 隐藏” 元素的类是容易的, 也是最有效的方法之一 。 套用“ 隐藏” 的显示样式“ 无” 将比直接编辑该样式更快 。 我在堆叠溢出问题中解释了其中的一些内容, 使两个元素可见/ 隐藏在同一 div 中 。


缩略式最佳做法和优化

Google前端工程师Nicholas zakas在Google科技演讲中,

加速您的 Javascript (Youtube) 速度