2016-07-12 12 views
1

Ich habe Ereignis Listener auf der Bildlauf und alles funktioniert gut mit Desktop-Browsern (beim Scrollen startet - das Ereignis ausgelöst sofort) und Chrome-Browser in mobilen (Chrome neueste Version + Android-Version 5.0), aber Mit anderen mobilen Browsern (ff, android browser) funktioniert das anders, und nach dem googlen für einige habe ich den Grund gefunden: es ist, weil das scroll-Ereignis nicht ausgelöst wird, bis die Scroll-Aktion zum völligen Stillstand kommt (loslassen des Fingers vom Bildschirm).Scroll-Ereignis Feuer Verzögerung in Handy

Meine Frage gibt es einige Workaround für diese, vielleicht einige Best Practice, so wird es normal schießen (wie für den Desktop) und ohne dramatische Leistungsänderungen?

* JS-Lösung nur (nein für jquery).

Antwort

2

Sie können iScroll verwenden. Es hängt nicht von jQuery ab und erreicht, was Sie wollen (scroll events auf mobilen Plattformen zünden - unter anderem).

Sie können sich auf this answer beziehen, wie Sie dies mit iScroll implementieren können.

+0

Können Sie sagen, wie es funktioniert? Ich möchte nicht einfach andere Code-Dateien importieren, um über dieses winzige Ding hinwegzukommen. Muss ein anderer, viel sauberer Weg sein, dies zu erreichen – zaknuroy

1

Ich stimme der Antwort von Mohit Bhardwaj zu und ich möchte nur etwas wichtiges über iScroll sagen.

Die iScroll-Runs hängen von css3 translate und dem js-Ereignis wie TouchMove, TouchStart und TouchEnd ab. Sie können einfach denken, dass es das gesamte Scroll-System auf Ihrer Seite oder den von Ihnen festgelegten Element-Container behandelt. Eine Sache, die Sie wissen sollten, wenn Sie das Scroll-Ereignis in iScroll hören möchten, müssen Sie die Iscroll-Probe.js importieren und den Parameter ProbeType mit 2 oder 3 festlegen. Andernfalls würden Sie das Scroll-Ereignis nicht erhalten.

Die iScroll-Version 5 ist gut, ich benutze es in vielen Projekten. Sie können es Dokumente und Code sehen here