Apakah ada cara untuk mendapatkan acara roda mouse (tidak berbicara tentang scroll
acara) di jQuery?
javascript
jquery
mousewheel
thejh
sumber
sumber
$(el).on('input', ...
Jawaban:
Ada plugin yang mendeteksi roda dan kecepatan mouse atas / bawah di suatu wilayah.
sumber
sumber
DOMMouseScroll
event digunakan dalam FF, sehingga Anda harus mendengarkan pada kedua.bind('DOMMouseScroll mousewheel') {
evetns developer.mozilla.org/en-US/docs/DOM/DOM_event_reference/...e.originalEvent.wheelDelta
tidak terdefinisi dalam FF23Mengikat keduanya
mousewheel
danDOMMouseScroll
akhirnya bekerja dengan sangat baik untuk saya:Metode ini bekerja di IE9 +, Chrome 33, dan Firefox 27.
Sunting - Mar 2016
Saya memutuskan untuk meninjau kembali masalah ini karena sudah lama. Halaman MDN untuk acara gulir memiliki cara yang bagus untuk mengambil posisi gulir yang memanfaatkan
requestAnimationFrame
, yang sangat disukai untuk metode deteksi saya sebelumnya. Saya memodifikasi kode mereka untuk memberikan kompatibilitas yang lebih baik selain arah dan posisi gulir:Kode ini sedang bekerja di
Chrome v50, Firefox v44, Safari v9, and IE9+
Referensi:
sumber
Sampai sekarang di 2017, Anda bisa menulis
Bekerja dengan Firefox 51, Chrome 56, IE9 + saat ini
sumber
Jawaban yang berbicara tentang acara "roda mouse" mengacu pada acara yang sudah usang. Acara standar hanyalah "roda". Lihat https://developer.mozilla.org/en-US/docs/Web/Reference/Events/wheel
sumber
wheel
acara didukung padaEdge
tidakIE
yang tidak hal yang sama. CanIuseIni bekerja untuk saya :)
dari stackoverflow
sumber
Ini solusi vanilla. Dapat digunakan di jQuery jika acara dilewatkan ke fungsi
event.originalEvent
yang jQuery tersedia sebagai properti dari acara jQuery. Atau jika di dalamcallback
fungsi di bawah kita tambahkan sebelum baris pertama:event = event.originalEvent;
.Kode ini menormalkan kecepatan / jumlah roda dan positif untuk apa yang akan menjadi gulir maju pada mouse tipikal, dan negatif pada gerakan roda mouse mundur.
Demo: http://jsfiddle.net/BXhzD/
Ada juga plugin untuk jQuery, yang lebih bertele-tele dalam kode dan sedikit gula tambahan: https://github.com/brandonaaron/jquery-mousewheel
sumber
Ini berfungsi di setiap versi terbaru IE, Firefox dan Chrome.
sumber
Saya terjebak dalam masalah ini hari ini dan menemukan kode ini berfungsi dengan baik untuk saya
sumber
gunakan kode ini
sumber
kombinasi saya terlihat seperti ini. itu memudar dan memudar pada setiap gulir ke bawah / atas. jika tidak, Anda harus gulir ke atas ke tajuk, untuk memudar tajuk di.
yang di atas tidak dioptimalkan untuk sentuhan / ponsel, saya pikir yang ini lebih baik untuk semua ponsel:
sumber
Plugin yang diposting oleh @DarinDimitrov
jquery-mousewheel
, rusak dengan jQuery 3+ . Akan lebih disarankan untuk menggunakanjquery-wheel
yang berfungsi dengan jQuery 3+.Jika Anda tidak ingin pergi rute jQuery, MDN sangat berhati-hati menggunakan
mousewheel
acara karena tidak standar dan tidak didukung di banyak tempat. Sebaliknya itu mengatakan bahwa Anda harus menggunakanwheel
acara karena Anda mendapatkan lebih banyak spesifisitas tentang apa nilai yang Anda dapatkan. Ini didukung oleh sebagian besar browser utama.sumber
Jika menggunakan plugin jquery mousewheel yang disebutkan , lalu bagaimana menggunakan argumen ke-2 dari fungsi event handler -
delta
:sumber
Saya mendapat masalah yang sama baru-baru ini di mana
$(window).mousewheel
kembaliundefined
Apa yang saya lakukan adalah
$(window).on('mousewheel', function() {});
Selanjutnya untuk memprosesnya saya menggunakan:
sumber