2013-07-01 9 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' के खिलाफ परीक्षण नहीं कर सकते हैं, आपको और दूसरों को visibility सेटिंग की जांच करने के अलावा परीक्षण करना होगा। उदाहरण के लिए, तत्व display:block:visibility:hidden हो सकता है जो इसे :visible नहीं बनाता है।

1

उपयोग .is() और :visible

var j = jQuery.noConflict(); 

jQuery(function($) { 
    if($('#element').is(':visible')){ 
     $('body').scrollTo('#target'); 
    }; 
}); 
संबंधित मुद्दे