检查元素的可见性

use*_*007 37 jquery if-statement scrollto

我想检查元素是否可见,如果是,我想向下滚动到它.我试图通过以下jquery来实现:

var j = jQuery.noConflict();

  jQuery(document).ready(function($) {
    if(j('#element').css('display') == 'block'){
        j('body').scrollTo('#target');
      };
});
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

Bra*_*tie 11

// jQuery no conflict mode
var j = $.noConflict();

// retain meaning of jQuery's handle (optional but makes it
// sometimes easier if you don't use one-letter assignments
// of jQuery)
(function($){

  // document read
  $(function(){
    // if element is visible (a visible #element was found)
    if $('#element:visible').size() > 0){
      // scroll to #target
      $('body').scrollTo('#target');
    }
  });

})(j);
Run Code Online (Sandbox Code Playgroud)

:visible让它更容易.你不能只是测试display=='block',inline-block除了检查visibility设置之外,你还必须测试和其他人.例如,元素可能具有display:block:visibility:hidden不成功的元素:visible.