मुझे विश्वास नहीं है कि यह एक सीएसएस मीडिया क्वेरी के साथ संभव है, लेकिन मुझे पता है कि स्क्रॉल ऊंचाई window.pageYOffset
का उपयोग कर जावास्क्रिप्ट में पाई जा सकती है। आप हर बार जब उपयोगकर्ता नीचे स्क्रॉल या एक पृष्ठ पर एक समारोह के माध्यम से इस मूल्य को चलाने के लिए चाहते हैं तो आपके
window.onscroll = function() {
scrollFunctionHere(window.pageYOffset);
};
या बस की तरह कुछ कर सकता है:
window.onscroll = scrollFunctionHere;
समारोह में ही चेक किया है window.pageYOffset
का मान।
window.onscroll
जावास्क्रिप्ट में कुशलतापूर्वक उपयोग करने के तरीके के बारे में अधिक सलाह के लिए, mynameistechno's answer देखें।
दक्षता पर महत्वपूर्ण नोट: स्क्रॉल ईवेंट उत्सर्जित होने पर हर बार एक फ़ंक्शन चलाते हुए कॉलबैक में कुछ भी गैर-तुच्छ प्रदर्शन किया जाता है। इसके बजाए, कॉलबैक प्रति सेकंड इतनी बार चलाने की अनुमति देने के लिए अच्छा अभ्यास है। इसे "debouncing" कहा गया है।
सरल नीचे स्क्रॉल ईवेंट हैंडलर कोड नीचे दिये गये। गौर करें कि पाठ "नमस्ते" और "दुनिया" हर 250ms के बीच टॉगल, बल्कि हर एक फ्रेम से:
var outputTo = document.querySelector(".output");
var timeout_debounce;
window.addEventListener("scroll", debounce);
function debounce(event) {
if(timeout_debounce) {
return;
}
timeout_debounce = setTimeout(clearDebounce, 250);
// Pass the event to the actual callback.
actualCallback(event);
}
function clearDebounce() {
timeout_debounce = null;
}
function actualCallback(event) {
// Perform your logic here with no CPU hogging.
outputTo.innerText = outputTo.innerText === "HELLO"
? "WORLD"
: "HELLO";
}
p {
padding: 40vh;
margin: 20vh;
background: blue;
color: white;
}
<p class="output">Test!</p>
स्रोत
2013-06-04 16:26:35
+1 अच्छा उत्तर। – iConnor
काम नहीं करता है। मेरा उत्तर देखें – mynameistechno
मैंने अपने उत्तर में पूंजीकरण त्रुटि तय की और 'window.onscroll' के उपयोग के बारे में अधिक जानकारी के लिए आपके उत्तर का जिक्र किया। सिर्फ रिकॉर्ड के लिए, मैंने अपने उत्तर में अधिक जानकारी नहीं जोड़ना चुना क्योंकि मुझे लगता है कि जावास्क्रिप्ट तकनीक का उपयोग करने वाले डेवलपर्स 'window.onscroll' पर अपना स्वयं का शोध करेंगे। @mynameistechno –