Für eine andere Frage habe ich diese Antwort einschließlich dieses Beispielcodes verfasst .
In diesem Code verwende ich das Mausrad, um eine HTML5-Leinwand zu vergrößern oder zu verkleinern. Ich habe Code gefunden, der Geschwindigkeitsunterschiede zwischen Chrome und Firefox normalisiert. Die Zoombehandlung in Safari ist jedoch viel, viel schneller als in beiden Fällen.
Hier ist der Code, den ich derzeit habe:
var handleScroll = function(e){
var delta = e.wheelDelta ? e.wheelDelta/40 : e.detail ? -e.detail/3 : 0;
if (delta) ...
return e.preventDefault() && false;
};
canvas.addEventListener('DOMMouseScroll',handleScroll,false); // For Firefox
canvas.addEventListener('mousewheel',handleScroll,false); // Everyone else
Welchen Code kann ich verwenden, um den gleichen Delta-Wert für die gleiche Menge an Mausrad zu erhalten, die in Chrome v10 / 11, Firefox v4, Safari v5, Opera v11 und IE9 rollt?
Diese Frage ist verwandt, hat aber keine gute Antwort.
Bearbeiten : Weitere Untersuchungen zeigen, dass ein Bildlaufereignis 'up' ist:
| evt.wheelDelta | evt.detail ------------------ + ---------------- + ------------ Safari v5 / Win7 | 120 | 0 Safari v5 / OS X | 120 | 0 Safari v7 / OS X | 12 | 0 Chrome v11 / Win7 | 120 | 0 Chrome v37 / Win7 | 120 | 0 Chrome v11 / OS X | 3 (!) | 0 (möglicherweise falsch) Chrome v37 / OS X | 120 | 0 IE9 / Win7 | 120 | nicht definiert Opera v11 / OS X | 40 | -1 Opera v24 / OS X | 120 | 0 Opera v11 / Win7 | 120 | -3 Firefox v4 / Win7 | undefiniert | -3 Firefox v4 / OS X | undefiniert | -1 Firefox v30 / OS X | undefiniert | -1
Darüber hinaus liefert die Verwendung des MacBook-Trackpads unter OS X auch bei langsamer Bewegung unterschiedliche Ergebnisse:
- Bei Safari und Chrome ist der
wheelDelta
Wert 3 anstelle von 120 für das Mausrad. - Bei Firefox
detail
ist dies normalerweise2
manchmal der Fall1
, aber wenn Sie sehr langsam scrollen, wird KEIN EVENT-HANDLER GEFEUERT .
Die Frage ist also:
Was ist der beste Weg, um dieses Verhalten zu unterscheiden (idealerweise ohne Benutzeragenten oder Betriebssystem-Sniffing)?
e.wheelDelta/120
?