升级到iScroll5后,ios上的iScroll不起作用

iScroll on ios doesn't work after upgrading to iScroll5

本文关键字:ios 上的 iScroll 不起作用 iScroll5      更新时间:2023-09-26

我有一个ipad cordova应用程序,它使用isroll在页面之间滚动。
一切都很好,直到我升级到iScroll5。我改变了我的代码,使用新的构造函数和参数,但它仍然不起作用。它根本不滚动。
我不知道我是否错过了一些明显的东西,但是我找不到关于升级的详细文档。

这是我之前使用它的一个例子(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());

任何帮助都非常感谢!谢谢!

所以,首先,在你的"scrollEnd"事件,而不是传递updatePages()函数作为参数,你调用它。所以它将只运行一次,当页面不是在scrollEnd上加载时。你应该把它改成:

scroller.on("scrollEnd", updatePages);

如果这还不能解决你的问题,那么你应该检查一下你的CSS。

来自isroll .js文档:

[…记住,脚本需要知道的高度/宽度滚动区域。

这意味着:

  • 如果你的#wrapper元素定位相对或静态,那么你应该明确地定义一些相对单位的高度(%不会工作)。

  • 如果你的#wrapper元素是绝对的或固定的,那么你应该应用上面的规则,或者你可以使用topbottom来代替(两者都必须指定)。

如果它仍然不起作用,那么请确保在DOM准备好之后启动IScroll对象,但考虑到它之前对您有效,这不是问题。