Подтвердить что ты не робот

IScroll on ios не работает после обновления до iScroll5

У меня есть приложение cordova для ipad, которое использует iScroll для прокрутки страниц. Все работало нормально, пока я не обновился до iScroll5. Я изменил свой код, чтобы использовать новый конструктор и параметры, но он по-прежнему не работает. Он просто не прокручивается.
Я не знаю, не хватает ли я чего-то очевидного, но я не могу найти exaustive документацию об обновлении.

Это пример того, как я использовал его раньше (iScroll4):

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

И вот как я его сейчас использую (iScroll5):

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

Любая помощь очень ценится! Спасибо!

4b9b3361

Ответ 1

Итак, во-первых, в вашем случае "scrollEnd" вместо передачи функции updatePages() в качестве парметера вы вызываете его. Таким образом, он будет запускаться только один раз, когда страница загружается не на scrollEnd. Вы должны изменить его на:

scroller.on("scrollEnd", updatePages);

Если это само по себе не устраняет вашу проблему, вы должны с уверенностью проверить свой CSS.

Из документации iscroll.js:

[...] помните, что script должен знать высоту/ширину область прокрутки.

Это означает:

  • Если ваш элемент #wrapper позиционируется относительным или статическим, то вы должны иметь явно определенную высоту с некоторой относительной единицей (% не будет работать).

  • Если ваш элемент #wrapper позиционируется как абсолютный или фиксированный, тогда вы должны либо применить правило выше, либо вместо него использовать top и bottom (оба должны быть указаны).

Если он по-прежнему не работает, убедитесь, что ваш объект IScroll запущен после того, как DOM готов, но, учитывая, что это сработало для вас раньше, это не проблема.