2015-05-28 6 views
11

Ich habe eine Cordova App für ipad, die iScroll verwendet, um zwischen Seiten zu scrollen.
Alles hat gut funktioniert, bis ich auf iScroll5 aktualisiert habe. Ich habe meinen Code geändert, um neuen Konstruktor und Parameter zu verwenden, aber es funktioniert immer noch nicht. Es scrollt einfach nicht.
Ich weiß nicht, ob mir etwas offensichtlich fehlt, aber ich kann keine exakten Dokumente über das Upgrade finden.iScroll auf ios funktioniert nicht nach dem Upgrade auf iScroll5

Dies ist ein Beispiel, wie habe ich es vor (iScroll4):

var options = {hScroll:false, hScrollbar:false, snap:true, onScrollEnd: updatePages(), momentum: false}; 
var scroller = new iScroll("wrapper", options); 

Und das ist, wie ich es verwenden jetzt (iScroll5):

var options = {scrollX: false, snap: true, momentum: false}; 
var scroller = new IScroll("#wrapper", options); 
scroller.on("scrollEnd", updatePages()); 

Jede Hilfe wird sehr geschätzt! Vielen Dank!

Antwort

1

Also, zuerst die Dinge zuerst, in Ihrem "scrollEnd" Ereignis, anstatt die updatePages() Funktion als ein Parmeter zu übergeben, rufen Sie es an. Es wird also nur einmal ausgeführt, wenn die Seite nicht auf scrollEnd geladen wird. Sie sollten es sich ändern:

scroller.on("scrollEnd", updatePages);

Wenn das allein das Problem nicht beheben, dann sollten Sie propably Ihre CSS überprüfen.

Von iscroll.js Dokumentation:

[...] nicht vergessen, dass das Skript der Höhe/Breite des Scrolling-Bereichs wissen muss.

Das bedeutet:

  • Wenn Ihr #wrapper Element relativ oder statisch positioniert ist, dann sollten Sie mit einigen relativen Einheit explizit definierte Höhe haben (% wird nicht funktionieren).

  • Wenn Ihr #wrapper Element absolut positioniert oder fixiert ist, dann sollten Sie entweder wenden Sie die Regel über oder könnten Sie top und bottom verwenden, anstatt (beide angegeben werden muss).

Wenn es immer noch nicht funktioniert, dann stellen Sie sicher, dass Ihr IScroll Objekt initiiert wird, nachdem das DOM bereit ist, aber wenn man bedenkt, bevor für Sie gearbeitet, dann ist dies nicht das Problem.