[PhoneGap]仅在主窗口中阻止弹跳

时间:2014-03-10 07:48:28

标签: ios cordova bounce

我现在使用最新版本的PhoneGap(3.4)和iOS7.1 beta3,我发现身体(可能称为UI View元素)有一个不好的弹跳属性,就像下面的图片一样,我想要禁用它。我试图在网站上搜索,我发现只有 <preference name="DisallowOverscroll" value="false" />
适合我,但我发现这个偏好使我的应用程序中的所有元素都禁用了反弹,我只想禁用身体反弹,就像下面的图片一样,并在div元素中保持反弹。

有没有办法解决这个问题?

e

2 个答案:

答案 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发行版。