est-il un moyen pour obtenir des événements de molette de souris (ne parlons scroll
des événements) en jquery? Je ne pouvais pas trouver quelque chose dans les docs.
Réponses
Trop de publicités?La liaison à la fois mousewheel
et DOMMouseScroll
a fini par travailler vraiment bien pour moi:
$(window).bind('mousewheel DOMMouseScroll', function(event){
if (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) {
// scroll up
}
else {
// scroll down
}
});
Cette méthode fonctionne dans IE9+, Chrome 33, et Firefox 27.
Il y a un plugin qui détecte haut/bas de la molette souris et de la vitesse au cours d'une région.
Les réponses à parler de "la roulette de la souris" événement fait référence à une déconseillé de l'événement. La norme de l'événement est tout simplement "la roue". Voir https://developer.mozilla.org/en-US/docs/Web/Reference/Events/wheel
Cela a fonctionné pour moi:)
//Firefox
$('#elem').bind('DOMMouseScroll', function(e){
if(e.originalEvent.detail > 0) {
//scroll down
console.log('Down');
}else {
//scroll up
console.log('Up');
}
//prevent page fom scrolling
return false;
});
//IE, Opera, Safari
$('#elem').bind('mousewheel', function(e){
if(e.originalEvent.wheelDelta < 0) {
//scroll down
console.log('Down');
}else {
//scroll up
console.log('Up');
}
//prevent page fom scrolling
return false;
});