Подтвердить что ты не робот

Проверка видимости элемента

Я хочу проверить, является ли элемент видимым, и если да, я хочу прокрутить его вниз. Я пытаюсь достичь этого со следующим jquery:

var j = jQuery.noConflict();

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

но это не сработает.

4b9b3361

Ответ 1

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

// retain meaning of jQuery 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);

:visible упрощает работу. Вы не можете просто протестировать против display=='block', вам также нужно будет проверить для inline-block и других в дополнение к проверке параметра visibility. Например, элемент может иметь display:block:visibility:hidden, который не делает его :visible.

Ответ 3

Используйте . is() и : visible

var j = jQuery.noConflict();

jQuery(function($) {
    if($('#element').is(':visible')){
        $('body').scrollTo('#target');
    };
});