जवाबों:
यदि आप एक अच्छा धीमी एनीमेशन स्क्रॉल चाहते हैं, तो इसके साथ किसी भी एंकर के लिए href="#bottom"
आपको नीचे स्क्रॉल करना होगा:
$("a[href='#bottom']").click(function() {
$("html, body").animate({ scrollTop: $(document).height() }, "slow");
return false;
});
चयनकर्ता को बदलने के लिए स्वतंत्र महसूस करें।
स्क्रॉलटॉप () स्क्रॉल करने योग्य क्षेत्र से दृश्य से छिपाई गई पिक्सेल की संख्या लौटाता है, इसलिए इसे दे रहा है:
$(document).height()
वास्तव में पृष्ठ के निचले भाग का निरीक्षण करेंगे। पृष्ठ के निचले भाग में 'स्टॉप' पर स्क्रॉल करने के लिए, ब्राउज़र विंडो की वर्तमान ऊंचाई को घटाना आवश्यक है। यदि आवश्यक हो तो सहजता का उपयोग करने की अनुमति देगा, इसलिए यह बन जाता है:
$('html, body').animate({
scrollTop: $(document).height()-$(window).height()},
1400,
"easeOutQuint"
);
easeOutQuint
एक प्लगइन की आवश्यकता है, jQuery ही केवल है linear
और swing
।
<!DOCTYPE html>
Chrome पर शामिल नहीं होते हैं , तो Chrome विंडो और दस्तावेज़ की ऊंचाई के लिए सटीक समान मान लौटाएगा, जिस स्थिति $(document).height()-$(window).height()
में हमेशा वापस आएगा। यहाँ देखें: stackoverflow.com/questions/12103208/…
इसके बाद इस धागे ने मेरी विशिष्ट आवश्यकता के लिए मेरे लिए काम नहीं किया (एक विशेष तत्व के अंदर स्क्रॉल करना, मेरे मामले में एक textarea) मैंने इसे महान परे में पाया, जो इस चर्चा को पढ़ने वाले किसी और के लिए उपयोगी साबित हो सकता है:
चूँकि मेरे पास पहले से ही मेरे jQuery ऑब्जेक्ट का एक कैश्ड संस्करण था ( myPanel
नीचे दिए गए कोड में jQuery ऑब्जेक्ट है), मैंने अपने ईवेंट हैंडलर में जो कोड जोड़ा था वह बस यही था:
myPanel.scrollTop(myPanel[0].scrollHeight - myPanel.height());
(धन्यवाद बेन)
var d = $('#mydiv'); d.scrollTop (d[0].scrollHeight - d.height ());
एक साधारण फ़ंक्शन जो कूदता है (तुरन्त स्क्रॉल करता है) पूरे पृष्ठ के नीचे। यह बिल्ट-इन का उपयोग करता है .scrollTop()
। मैंने व्यक्तिगत पृष्ठ तत्वों के साथ काम करने के लिए इसे अनुकूलित करने की कोशिश नहीं की है।
function jumpToPageBottom() {
$('html, body').scrollTop( $(document).height() - $(window).height() );
}
$(document).scrollTop($(document).height());
यह एक मेरे लिए काम किया:
var elem = $('#box');
if (elem[0].scrollHeight - elem.scrollTop() == elem.outerHeight()) {
// We're at the bottom.
}
यदि आपको एनीमेशन की परवाह नहीं है, तो आपको तत्व की ऊंचाई प्राप्त करने की आवश्यकता नहीं है। कम से कम सभी ब्राउज़रों में मैंने कोशिश की है, यदि आप scrollTop
एक संख्या देते हैं जो अधिकतम से अधिक है, तो यह बस नीचे तक स्क्रॉल करेगा। तो यह संभव सबसे बड़ी संख्या दे:
$(myScrollingElement).scrollTop(Number.MAX_SAFE_INTEGER);
यदि आप स्क्रॉलबार के साथ कुछ तत्व के बजाय पृष्ठ को स्क्रॉल करना चाहते हैं, तो बस myScrollingElement
'बॉडी, HTML' के बराबर बनाएं ।
चूंकि मुझे कई स्थानों पर ऐसा करने की आवश्यकता है, इसलिए मैंने इस तरह से इसे और अधिक सुविधाजनक बनाने के लिए एक त्वरित और गंदा jQuery फ़ंक्शन लिखा है:
(function($) {
$.fn.scrollToBottom = function() {
return this.each(function (i, element) {
$(element).scrollTop(Number.MAX_SAFE_INTEGER);
});
};
}(jQuery));
तो मैं ऐसा कर सकता हूं जब मैं एक गुच्छा 'सामान संलग्न करता हूं:
$(myScrollingElement).append(lotsOfHtml).scrollToBottom();
पिछले उत्तरों में वर्णित लिपियाँ, जैसे:
$("body, html").animate({
scrollTop: $(document).height()
}, 400)
या
$(window).scrollTop($(document).height());
काम नहीं करेगा में क्रोम और में उछल हो जाएगा सफारी मामले में html
में टैग सीएसएस है overflow: auto;
संपत्ति सेट। यह पता लगाने में मुझे लगभग एक घंटा लग गया।
$('.block').scrollTop($('.block')[0].scrollHeight);
नए संदेश आने पर मैं चैट को स्क्रॉल करने के लिए इस कोड का उपयोग करता हूं।