在iScroll和标准WebView滚动功能之间切换



我正在将iScroll 4用于我相当繁重的iPhone web/Phonegap应用程序,并且试图找到一种方法在iScroll滚动功能和标准的"原生"网络视图滚动之间切换,基本上是点击即可。我为什么要这样描述如下。

我的应用程序有几个不同的子页面,所有子页面都在一个文件中。有些子页面有输入字段,有些则没有。众所周知,iScroll+输入字段=你运气不好。我已经将iScrolls包装器div(及其所有功能)封装在一个子页面上,其中滚动至关重要,并且没有输入字段。在其他部分中,我只是将放在这个div之外,这就完全没有滚动功能。当然,我已经尝试过将所有内容包装在包装器中,并启用/禁用iScroll(如下所示),但这根本不起作用:

myScroll.disable()
myScroll.enable()

通过将一些子页面放置在主滚动区域/iCrolldiv之外,我禁用了iScroll和标准的网络视图滚动(我想是后者),这让我根本无法滚动。然而,通过添加下面的行,我能够获得一些垂直移动性(这甚至是一个词吗?)。不幸的是,这只给我留下了基本的滚动功能,因此滚动功能只不过是你的手指在屏幕上垂直滑动浏览大量内容的可怕方式

document.removeEventListener('touchmove', preventDefault, false);
document.removeEventListener('touchmove', preventDefault, true);

因此,我正在寻找一种方法,在iScroll包装器div外部的子页面上启用标准的web视图滚动。我尝试过不同的方法,比如上面提到的方法,但都没有成功。很抱歉没有为你们提供任何硬代码或演示供你们自己测试,这只是太多的代码,而且它会脱离上下文呈现,对任何人都没有任何用处。

那么,有没有一种方法可以让javascript实现这一点,在iScroll滚动功能和标准的"原生"网络视图滚动之间切换我宁愿不重建整个DOM,所以像上面描述的解决方案会更好。

我从来没有让它工作过,所以我认为它不可能(容易)完成。我最终在我的应用程序中加入了四个不同的iscroll包装器,这很有效,但不是我想要的。我会暂时把这个作为正确的答案。

最新更新