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

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


当前回答

if($('#id_element').is(":visible")){
   alert('shown');
}else{
   alert('hidden');
}

其他回答

您可以在可见时添加一个类。添加一个类,显示。然后检查是否有一个类:

$('#elementId').hasClass('show');

如果您有表演类, 它返回为真 。

添加这样的 cs :

.show{ display: block; }

您可以在显示或隐藏 cs 类时,通过切换该类来使用该 Cs 类 :

.show{ display :block; }

设置您的 jquery toggle类 () 或添加类 () 或删除类 () 。

举个例子,

jquery (' myid'. 切换类 ('show')

当元素没有显示时, 上面的代码会添加显示 cs 类, 而当元素显示类别时, 将会删除 。

当你在检查它是否可见时, 你可以遵循这个拼字码,

jquery ('mid'.) 有类('show');

上面的代码将返回一个布尔, 当 Myid 元素含有我们的类( show) , 而当它没有( show) 类( show) 时则返回一个布尔 。

下面的代码检查,如果元素隐藏在jquery或可见

// You can also do this...

        $("button").click(function(){
            // show hide paragraph on button click
            $("p").toggle("slow", function(){
                // check paragraph once toggle effect is completed
                if($("p").is(":visible")){
                    alert("The paragraph  is visible.");
                } else{
                    alert("The paragraph  is hidden.");
                }
            });
        });

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');

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

您可以尝试这个

$(document).ready(function() {
   var view = $(this).is(':visible');

   if(view) {
      alert("view");
                    // Code
   }
   else
   {
      alert("hidden");
   }
});