स्क्रॉल स्थिति सेट करें


107

मैं एक पृष्ठ पर स्क्रॉल की स्थिति सेट करने का प्रयास कर रहा हूं, इसलिए स्क्रोलर को शीर्ष पर सभी तरह से स्क्रॉल किया गया है।

मुझे लगता है कि मुझे ऐसा कुछ चाहिए, लेकिन यह काम नहीं कर रहा है:

(function () { alert('hello'); document.body.scrollTop = 0; } ());

कोई विचार?

जवाबों:




34

ध्यान दें कि यदि आप पूर्ण विंडो के बजाय किसी तत्व को स्क्रॉल करना चाहते हैं, तो तत्वों में scrollToऔर scrollByविधियाँ नहीं हैं । तुम्हे करना चाहिए:

var el = document.getElementById("myel"); // Or whatever method to get the element

// To set the scroll
el.scrollTop = 0;
el.scrollLeft = 0;

// To increment the scroll
el.scrollTop += 100;
el.scrollLeft += 100;

तुम भी नकल कर सकते हैं window.scrollToऔर window.scrollByसब पर वेबपेज में विद्यमान HTML तत्वों को कार्यों ब्राउज़रों कि यह मूल रूप से समर्थन नहीं करते :

Object.defineProperty(HTMLElement.prototype, "scrollTo", {
    value: function(x, y) {
        el.scrollTop = y;
        el.scrollLeft = x;
    },
    enumerable: false
});

Object.defineProperty(HTMLElement.prototype, "scrollBy", {
    value: function(x, y) {
        el.scrollTop += y;
        el.scrollLeft += x;
    },
    enumerable: false
});

तो आप कर सकते हैं:

var el = document.getElementById("myel"); // Or whatever method to get the element, again

// To set the scroll
el.scrollTo(0, 0);

// To increment the scroll
el.scrollBy(100, 100);

नोट: Object.definePropertyसीधे गुण जोड़ने के रूप में प्रोत्साहित किया prototypeजाता है, एक बुरी बुरी आदत है (जब आप इसे देखते हैं :-)


यह सहायक था, धन्यवाद। लेकिन मैंने पाया कि तत्वों में 'स्क्रोल्टो' विधि है। Developer.mozilla.org/en-US/docs/Web/API/Element/scrollTo
Narvalex

@Narvalex यही दूसरा पैराग्राफ बताता है।
जॉर्ज फ्यूएंटेस गोंजालेज

मैंने जो संदर्भ दिया वह दर्शाता है कि वे कार्य अंतर्निहित हैं। अंतर्निहित विधियों के गुणों को परिभाषित करने की आवश्यकता नहीं है
नार्वेलक्स

@Narvalex ओह, मैंने अभी पढ़ा "मेरे पास नहीं है", मेरा बुरा। मुझे यह बताना होगा कि सभी ब्राउज़रों के पास यह नहीं है, हालांकि आजकल इस तरह के ब्राउज़र (जैसे IE11) को खोजना मुश्किल है।
जॉर्ज फ्यूएंटेस गोंजालेज

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.