इस समय, फ़ायरफ़ॉक्स DOMMouseScroll और व्हील ईवेंट को परिभाषित करता है। क्रोम, ओपेरा और आईई (नवीनतम, फिर से!) mousewheel परिभाषित करें।
इस तरह मैंने किया:
if(window.onwheel !== undefined) {
window.addEventListener('wheel', onMouseWheel)
} else if(window.onmousewheel !== undefined) {
window.addEventListener('mousewheel', onMouseWheel)
} else {
// unsupported browser
}
नोट है कि पुराने आईई संस्करण में addEventListener समर्थन एक polyfill की जरूरत है। वैकल्पिक रूप से आप पुरानी विंडो का उपयोग कर सकते हैं। Mousewheel = function() {} या जो भी विधि।
जैसा कि आप देख सकते हैं, ईवेंट श्रोता विंडो ऑब्जेक्ट से जुड़ा हुआ है। आप क्रॉस-ब्राउज़र फैशन में तत्वों से इसे संलग्न नहीं कर सकते हैं। आप इवेंट ऑब्जेक्ट लक्ष्य प्रॉपर्टी का उपयोग यह देखने के लिए कर सकते हैं कि यह कहां ट्रिगर किया गया था, और उस आधार पर एक फ़िल्टर करें।
पीएस: एक और क्रॉस-ब्राउज़र विचार: आईई में, आपको कॉलबैक फ़ंक्शन ("onMouseWheel") में प्रोसेस करते समय ईवेंट ऑब्जेक्ट के अंदर "व्हीलडेल्टा" प्रॉपर्टी (और इसे साइन इन करें!) का उपयोग करना होगा। अन्य ब्राउज़रों क्षैतिज स्क्रॉलिंग के लिए "डेल्टा" (या "डेल्टाएक्स" पॉप्युलेट करेंगे)।
यह फ़ायरफ़ॉक्स और क्रोम में काम करता है। ** लाइव डेमो: ** http://jsfiddle.net/chtNP/1/ –
यह संस्करण के आधार पर आईई या ओपेरा में बहुत अच्छा काम नहीं करेगा (देखें http://www.adomas.org/javascript- माउस-व्हील /) – Kelvin
@ केल्विन मैके मैंने आईई 9, और आईई 8 में परीक्षण किया है, और यह काम करता है। –