Peristiwa menggulir halaman pada katrol ditemui dalam efek khusus halaman web, tetapi metode implementasi berbeda di bawah browser yang berbeda. Metode berikut yang saya terapkan kompatibel dengan browser umum.
function getData (event) {var e = event || window.event; // Dapatkan jarak gulir (ff setiap data gulir adalah 3 atau -3, yang lain 120 atau -120) var data = e.detail || E.Wheeldelta; peringatan (data); } // Metode acara yang mengikat di luar IE if (document.addeventlistener &&! Document.attachevent) {document.addeventlistener ('mousewheel', getData); // ff mengikat dokumen acara scroll.addeventListener ('dommousescroll', getData); } // IE Lainnya if (document.attachevent &&! Document.addeventListener) {document.attachevent ('onmousewheel', getData); } else {window.onmousewheel = getData; }Apa yang patut dicatat dalam kode:
1 Mengapa menggunakan document.addeventlistener &&! Document.attachevent untuk membedakan IE?
Attachevent dan Detachevent adalah metode khusus IE untuk mengikat peristiwa dan peristiwa yang tidak mengikat, dan metode ini hanya ada di IE. Namun, di browser IE9+, metode AddeventListener yang lebih umum diimplementasikan untuk mengikat acara. Jika metode Document.addeventListener di browser dapat mengecualikan yang tidak IE8 dan di bawah, tetapi sertakan browser IE9+, jadi gunakan &&! Document.Attachevent untuk mengecualikan IE9+ browser nanti.
2 Perlu dicatat bahwa tidak ada peristiwa mousewheel di browser FF, dan waktu ketika pengguliran dipicu adalah Dommousescroll.
3 Hal lain yang patut dicatat adalah bahwa ketika menggunakan AddEventListener untuk mengikat acara, tidak ada On ditambahkan sebelum nama acara, tetapi saat menggunakan AttachEvent untuk mengikat acara di IE, ON diperlukan.