2010-11-22 21 views
139

मेरे पृष्ठ को लोड होने के बाद। मैं चाहता हूं कि jquery पृष्ठ के निचले हिस्से तक अच्छी तरह से स्क्रॉल करें, जल्दी से एनिमेट करना, स्नैप/झटका नहीं।jQuery स्क्रॉल पृष्ठ के नीचे

क्या मुझे इसके लिए ScrollTo जैसी प्लगइन चाहिए? या यह jQuery में कुछ कैसे बनाया गया है?

उत्तर

314

तुम बस scrollTop संपत्ति एनिमेट द्वारा पृष्ठ स्क्रॉल करना चेतन सकता है, कोई प्लगइन की आवश्यकता है, इस तरह:

$(window).load(function() { 
    $("html, body").animate({ scrollTop: $(document).height() }, 1000); 
}); 

नोट window.onload का उपयोग (जब छवियों लोड किए गए हैं ... जो ऊंचाई पर कब्जा) document.ready के बजाए।

तकनीकी रूप से सही होने के लिए, आप विंडो की ऊंचाई घटाना करने की जरूरत है, लेकिन इसके बाद के संस्करण काम करता है:

$("html, body").animate({ scrollTop: $(document).height()-$(window).height() }); 

एक विशेष आईडी के लिए स्क्रॉल करने के लिए, अपने .scrollTop() उपयोग करते हैं, इस तरह:

$("html, body").animate({ scrollTop: $("#myID").scrollTop() }, 1000); 
+0

आप गति नियंत्रित कर सकते हैं? और # आईडी यह जाता है? – AnApprentice

+0

@AnApprentice - यदि आप किसी विशेष आईडी पर स्क्रॉल करना चाहते हैं तो यह '$ (" html, body ") जैसा होगा। ({ScrollTop: $ (" # myID ")। ScrollTop()}, 1000);' के लिए यह एक सेकंड लेता है। –

+2

एक और मुद्दा, जब ऐसा लगता है, और तब उपयोगकर्ता स्कॉल करने की कोशिश करता है, थोड़ी देर के लिए इसे बंद कर दिया जाता है, और बहुत ही प्रभावशाली प्रभाव डालता है, जिससे उपयोगकर्ता को – AnApprentice

14

कुछ इस तरह:

var $target = $('html,body'); 
$target.animate({scrollTop: $target.height()}, 1000); 
+0

मैंने लक्ष्य को अद्यतन करने की कोशिश की .write-comment और यह काम नहीं किया। शायद क्योंकि पृष्ठ में इंजेक्शन दिया जा रहा है? – AnApprentice

+0

.write-comment एक अतिप्रवाह कंटेनर है? –

3
$("div").scrollTop(1000); 

मेरे लिए काम करता है। नीचे स्क्रॉल करें।

+4

यदि आपका पृष्ठ 1000px से अधिक नहीं है। – Volomike

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

के रूप में इस के रूप में सरल, 9999 पेज ऊंचाई ... बड़ा रेंज तो यह नीचे करने के लिए पहुँच सकते हैं।

3

'document.body.clientHeight' का उपयोग करके आप शरीर तत्वों की देखा ऊंचाई

$('html, body').animate({ 
    scrollTop: $("#particularDivision").offset().top - document.body.clientHeight + $("#particularDivision").height() 
}, 1000); 

आईडी पर इस स्क्रॉल 'particularDivision'

0

js

var el = document.getElementById("el"); 
el.scrollTop = el.scrollHeight - el.scrollTop; 
+0

हालांकि यह कोड समस्या को हल करने में मदद कर सकता है, यह _why_ और/या _how_ को प्रश्न का उत्तर नहीं देता है। इस अतिरिक्त संदर्भ को प्रदान करने से इसके दीर्घकालिक शैक्षणिक मूल्य में काफी सुधार होगा। कृपया स्पष्टीकरण जोड़ने के लिए अपना उत्तर संपादित करें, जिसमें सीमाएं और धारणाएं लागू हों। –

0

प्राप्त कर सकते हैं पिछले उत्तरों में वर्णित स्क्रिप्ट, जैसे:

$("body, html").animate({ 
    scrollTop: $(document).height() 
}, 400) 

में काम नहीं करेगा क्रोम और मामलेhtmlमें टैग सीएसएसoverflow: auto; संपत्ति सेट है में सफारीमें उछल हो जाएगा। मुझे पता लगाने में लगभग एक घंटे लग गए।

0
$('#pagedwn').bind("click", function() { 
     $('html, body').animate({ scrollTop:3031 },"fast"); 
     return false; 
}); 

यह समाधान मेरे लिए काम किया। यह तेजी से पेज स्क्रॉल में काम कर रहा है।

1

आप कोशिश कर सकते हैं इस

var scroll=$('#scroll'); 
scroll.animate({scrollTop: scroll.prop("scrollHeight")}); 
+0

धन्यवाद, सबसे विश्वसनीय और आधुनिक समाधान। – AlexioVay

संबंधित मुद्दे