Überprüfen Sie, ob der Benutzer mit Trackpad scrollt?

8

Ich habe eine Website erstellt, auf der Benutzer mit der Maus oder einem Pfeil nach oben / unten durch eine Galerie blättern können. Es funktioniert, wie ich es will, und ein Bild zu ändern, blättern beim Scrollen mit der Maus. Aber wenn der Benutzer mit einem Trackpad scrollt, ist es fast unmöglich, ein einzelnes Bild auf einmal zu scrollen.

Meine Frage ist also: Gibt es eine Möglichkeit, zu überprüfen, ob der Benutzer mit dem Trackpad scrollt, und dann das Verhalten des Scrollens zu ändern, so dass es weniger empfindlich wird und es dadurch einfacher ist, ein einzelnes Bild gleichzeitig zu scrollen? / p>

Ich bin nicht sehr gut in jquery, meine Lösung wurde bisher aus ein paar Skripten zusammengestellt:

Ссылка

Hoffe jemand kann mir helfen:)

    
Cody 18.09.2012, 22:43
quelle

5 Antworten

4

Nein, das ist nicht möglich. Die einzige Lösung, die ich mir vorstellen kann, ist eine Begrenzung der Scrollgeschwindigkeit. Ich werde nicht versuchen, Ihren Code zu entschlüsseln, aber ich würde empfehlen, eine Variable timedOut auf Null zu initialisieren, die jedes Mal auf eins gesetzt wird, wenn Sie zu einem neuen Bild blättern. Verwenden Sie setTimeout() , um es nach etwa 50 ms auf Null zurückzusetzen. Bevor Sie zu einem neuen Bild scrollen, überprüfen Sie diese timedOut Variable und scrollt nur, wenn es Null ist. (Stellen Sie sicher, dass Sie setTimeout in timedOut check setzen, sonst wird es bei jedem Mausrad-Aufruf ständig aufgerufen. Dies ist nicht das, was Sie wollen.)

    
DC_ 18.09.2012, 22:55
quelle
5

Ich fand heraus, dass die magische Zahl hier 40 war.

Es scheint, dass mit dem Trackpad (wahrscheinlich auch mit der Magic Mouse) das Delta 40 mal erhöht wird.

Und es bleibt so, auch wenn Sie Ihre normale Maus zurücknehmen und später mit ihr scrollen.

Also, was ich getan habe, mit dem jquery Mausrad-Plugin :

%Vor%     
YoannM 22.05.2013 15:43
quelle
1

Ich stieß auf ein ähnliches Problem mit einem von mir erstellten "Abschnittswechsel" -Plugin. Ich beendete die Auflösung mit einer "animation" -Variable: Die rad-Aktion funktioniert nur, wenn diese Variable auf 'false' gesetzt ist und wenn diese ausgelöst wird, wird die Variable auf 'true' gesetzt, dann würde ich die Variable wieder auf 'false' zurückstellen Die Animation ist abgeschlossen. Hoffe das hilft!

    
armanox 12.04.2013 07:25
quelle
1

Das ist ziemlich genau das, was DC_ vorgeschlagen hat. Dargestellt würde ich dies, da es eine tatsächliche Implementierung ist.

%Vor%     
posit labs 10.01.2014 18:49
quelle
0

Ich habe eine Lösung gefunden, die erkennt, ob der Benutzer ein Touchpad benutzt. Es funktioniert gut und hat nur zwei kleine Nachteile.

Zuerst erkennt es den Mauszeiger nach dem ersten gefeuerten Ereignis, also gibt es einen Mausklick mit dem Mausrad, der nichts tut. Aber das ist nur das erste Mal. Dann können wir den Wert zwischenspeichern, der zum zweiten kleinen Problem führt. Wenn der Benutzer ein Trackpad und eine Maus mit Rad hat, erkennt er, was zuerst benutzt wird. Für mich sind diese Probleme vernachlässigbar. Hier der Code

%Vor%     
David Fariña 02.07.2015 22:05
quelle

Tags und Links