0

我将iScroll 4用于我相当重的 iPhone web/Phonegap 应用程序,并试图找到一种在 iScrolls 滚动功能和标准“本机”webview 滚动之间切换的方法,基本上是点击。为什么我想要这个如下所述。

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

myScroll.disable()
myScroll.enable()

通过在主滚动区域/ iScroll div 之外放置一些子页面,我禁用了 iScrolls 和标准 webview 滚动(后者 - 我猜 iScroll 会这样做),这让我根本没有滚动。但是,通过添加下面的行,我能够获得一些垂直移动性(这甚至是一个词吗?)。不幸的是,这让我只有基本的滚动功能,因此没有比你的手指在屏幕上垂直滑动更多的滚动功能。浏览大量内容的糟糕方式

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

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

那么,有没有办法 n javascript 来做到这一点,在 iScroll 滚动功能和标准“本机”webview 滚动之间切换?我宁愿不重建整个 DOM,所以像上面描述的那样的解决方案会更可取。

4

1 回答 1

0

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

于 2012-12-14T14:33:03.403 回答