2013-07-01 24 views
27

要素が表示されているかどうかを確認したい場合は、その要素にスクロールします。私は次のjqueryでこれを達成しようとしています:要素の可視性の確認

var j = jQuery.noConflict(); 

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

しかし、動作しません。

答えて

3
// 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); 

:visibleは、それが容易になります。 display=='block'に対してのみテストすることはできません。の設定に加えて、inline-blockなどのテストも行う必要があります。たとえば、要素にdisplay:block:visibility:hiddenがあり、それが:visibleにならない可能性があります。

1

使用.is():visible

var j = jQuery.noConflict(); 

jQuery(function($) { 
    if($('#element').is(':visible')){ 
     $('body').scrollTo('#target'); 
    }; 
}); 
関連する問題