我现在使用最新版本的PhoneGap(3.4)和iOS7.1 beta3,我发现身体(可能称为UI View元素)有一个不好的弹跳属性,就像下面的图片一样,我想要禁用它。我试图在网站上搜索,我发现只有
<preference name="DisallowOverscroll" value="false" />
适合我,但我发现这个偏好使我的应用程序中的所有元素都禁用了反弹,我只想禁用身体反弹,就像下面的图片一样,并在div元素中保持反弹。
有没有办法解决这个问题?
答案 0 :(得分:22)
您需要在 config.xml 文件中同时使用这两个首选项:
<preference name="webviewbounce" value="false" />
<preference name="DisallowOverscroll" value="true" />
然后,您可以在嵌套容器上启用iOS本机样式滚动:
.scrollingArea
{
width: 100%;
height: (some-fixed-height);
overflow: hidden;
overflow-y: scroll !important;
-webkit-overflow-scrolling: touch;
}
您可能还会发现捕获和阻止touchmove&#39;关于您不希望用户可滚动的某些元素的事件(取决于您的布局)。
答案 1 :(得分:5)
我有一种方法可以实现这一目标。但它不是传统的,因为它处理本机编码。在MainViewController中有一个名为webViewDidFinishLoad的方法。包括这个 theWebView.scrollView.bounces = NO;
在那个方法里面。
- (void)webViewDidFinishLoad:(UIWebView*)theWebView
{
// Black base color for background matches the native apps
theWebView.backgroundColor = [UIColor blackColor];
theWebView.scrollView.bounces= NO;
return [super webViewDidFinishLoad:theWebView];
}
由于这是ios本机代码,因此这适用于任何phonegap / cordova发行版。