2010-12-30 15 views
30

तो यह वर्तमान कोड मैंscrollTop jquery, आईडी के साथ div करने के लिए स्क्रॉलिंग?

$(document).ready(function() { 
    $('.abouta').click(function(){ 
     $('html, body').animate({scrollTop:308}, 'slow'); 
     return false; 
    }); 
    $('.portfolioa').click(function(){ 
     $('html, body').animate({scrollTop:708}, 'slow'); 
     return false; 
    }); 
    $('.contacta').click(function(){ 
     $('html, body').animate({scrollTop:1108}, 'slow'); 
     return false; 
    }); 
}); 

है आप जैसे एक लिंक पर क्लिक करते है 'abouta' यह पृष्ठ के उस विशिष्ट खंड पर स्क्रॉल करता है। मैं बजाय एक स्क्रॉल करना चाहता हूं और फिर एक div की आईडी ताकि मुझे स्क्रॉल को बदलना न पड़े। अगर मैं पैडिंग बदलता हूं तो स्थिति। क्या कोई रास्ता है? धन्यवाद

उत्तर

95
बजाय

$('html, body').animate({scrollTop:xxx}, 'slow'); 

उपयोग

$('html, body').animate({scrollTop:$('#div_id').position().top}, 'slow'); 

इस जो कुछ तत्व आप के रूप में #div_id

+1

निर्माण पूरी तरह से, चियर्स: डी – Jake

+3

मैं हैरान कोई भी इतने लंबे समय में टिप्पणी की है हूँ - प्रश्न जैसा कि यह खड़ा है, वास्तव में '.osition() 'के बजाय समाधान के रूप में' .offset() 'के लिए पूछता है, है ना? लक्ष्य div पृष्ठ पर कहीं भी हो सकता है, और '.osition() '[अपने कंटेनर बॉक्स के सापेक्ष शीर्ष ऑफसेट लौटाता है] (http://api.jquery.com/position/)। तो उपरोक्त कोड आपको अपने दस्तावेज़ के शीर्ष पर ले जाएगा, यदि लक्ष्य div अपने माता-पिता का पहला बच्चा है। या क्या मैं कुछ न कुछ भूल रहा हूं? – sameers

+0

धन्यवाद समीर, बिल्कुल वही समस्या जो मैं कर रहा था। .offset() एक इलाज करता है। – Dan382

-2

चयन की पूर्ण शीर्ष स्थान वापस आ जाएगी अगर आप सिर्फ केवल कुछ div स्क्रॉल करने के लिए चाहते हैं , 'html, body' के बजाय div id का उपयोग कर सकते हैं

$('html, body').animate(... 

उपयोग

$('#mydivid').animate(... 
+3

नहीं, '$ ('# div')। एनिमेट ({scrollTop: $ ('# div')। स्थिति() शीर्ष}, 'धीमी');' काम नहीं करता है। (क्रोम 23)। बेहतर उपयोग '$ ('html, body')। एनिमेट ({scrollTop: $ ('# div_id')। स्थिति()। शीर्ष}, 'धीमी');' – bicycle

0

इस प्रयास करें:

$('html, body').animate({scrollTop:$('#xxx').position().top}, 'slow'); 
$('#xxx').focus(); 
-2

कोशिश इस

$('#div_id').animate({scrollTop:0}, '500', 'swing'); 
संबंधित मुद्दे