60

我在 IOS (ipad) 上使用最新版本的 Phonegap,我似乎无法在整个应用程序上禁用垂直过度滚动/反弹。我不介意内部元素,但是当您向上或向下滑动并且整个应用程序上下弹跳时,它看起来很奇怪。

我尝试在 .plist 中设置UIWebViewBounceno但似乎没有做任何事情。

感谢帮助:)

4

20 回答 20

204

您必须修改 config.xml 文件中的属性。只需将以下首选项设置为true

<preference name="DisallowOverscroll" value="true" />
于 2013-04-29T09:00:21.627 回答
21

接受的答案对我不起作用,我必须设置UIWebViewBouncefalse

<preference name="UIWebViewBounce" value="false" />
于 2013-06-15T06:21:03.650 回答
15

现在对于 phonegap 3.0 以上版本,在 config.xml 文件中使用低于 syntex 并且它将工作 100%

<preference name="DisallowOverscroll" value="true"/>
于 2013-12-23T07:41:41.223 回答
6

如果您在<preference name="DisallowOverscroll" value="true"/>没有任何运气的情况下添加到 config.xml,则您可能更改了错误的文件。相反,在整个 phonegap 目录中搜索“DisallowOverscroll”。您应该找到几个实例。将这些更改为true.

干杯。

于 2014-01-04T21:18:25.277 回答
5

在项目的 config.xml 中,在 iOS 的首选项下将 DisallowOverscroll 设置为 true。默认情况下,它是 false ,这会使整个视图与视图的内部元素一起滚动。

<preference name="DisallowOverscroll" value="true" />
于 2014-05-02T05:35:14.453 回答
4

如果没有其他方法,请尝试-webkit-overflow-scrolling: touch从您的 css 中删除...如果您有它!

于 2015-03-28T22:49:16.810 回答
4

使用这种方式: -

function disallowOverscroll(){
  $(document).on('touchmove',function(e){
    e.preventDefault();
  });
  $('body').on('touchstart','.scrollable',function(e) {
    if (e.currentTarget.scrollTop === 0) {
      e.currentTarget.scrollTop = 1;
    } else if (e.currentTarget.scrollHeight
              === e.currentTarget.scrollTop
                  + e.currentTarget.offsetHeight) {
      e.currentTarget.scrollTop -= 1;
    }
  });
  $('body').on('touchmove','.scrollable',function(e) {
    e.stopPropagation();
  });
}
disallowOverscroll();

有关更多详细信息或提示和技巧,请阅读本文点击

于 2016-01-12T10:49:18.007 回答
3

我曾经有一种方法可以实现这一点。但它不是传统的,因为它处理的是本机编码。在 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 发行版。

于 2014-06-16T09:42:46.697 回答
3

在项目的 config.xml 中,在 iOS 的首选项下将 DisallowOverscroll 设置为 true。

<preference name="DisallowOverscroll" value="true" />
于 2014-06-13T16:28:45.367 回答
3

谢谢大家的回答。但是,如果您在 Windows Phone 中遇到问题,这里就是解决方案。只需转到 MainPage.xaml.cs 文件并替换以下函数..

public MainPage()
    {
        InitializeComponent();
        this.CordovaView.DisableBouncyScrolling = true;
        this.CordovaView.Loaded += CordovaView_Loaded;
    }

它对我有用:)

于 2015-06-09T07:48:07.697 回答
2

试试这个如果你是 ionic 框架用户 Abc.html 文件里面的内容。

<ion-content has-bouncing="false">

于 2016-08-05T11:57:30.863 回答
2

我有一个类似的问题,但无法用我目前找到的所有解决方案(比如编辑 config.xml)来解决它。

但最后,只需编辑 body 的 CSS 属性,它就可以修复:

html,body
{
  overflow: auto;
  height:100%;
}
于 2016-07-27T04:13:02.940 回答
1

这对我的运行 phonegap 3.0 的应用程序有效:将以下行添加到 config.xml

<preference name="webviewbounce" value="false"/>
于 2013-10-10T10:35:28.223 回答
1

这对我有用。尝试将此代码添加到 phonegap 应用程序的 config.xml 文件中:

<preference name="DisallowOverscroll" value="true">

于 2014-09-12T07:04:01.467 回答
1

用这个:

<preference name="UIWebViewBounce" value="false" />
于 2013-06-15T06:26:02.013 回答
1

最好将config.xml中的两个元素修改如下:

<preference name="DisallowOverscroll" value="true"/>
<preference name="UIWebViewBounce" value="false" />
于 2015-12-24T04:45:18.563 回答
0

DisallowOverscroll 对我不起作用。

解决方案是确保无处滚动。

例如,在我的情况下,它div比下面的身体更宽(可以更高):

<body>
  <div style="margin: 5%" width: 95%;>something</div>
</div>

现在,abovediv比导致滚动的 body 大 5%。将宽度设置为 90% 可解决此问题。

于 2019-12-18T16:04:49.980 回答
0

更新 config.xml 后我没有运气,如果这是你的情况,试试这个。

对于适用于 iPhone + iOS 11 的 iOS,在 CDVThemeableBrowser.m 文件上,将属性设置为YES

self.disallowoverscroll = YES;
于 2018-04-25T15:18:09.027 回答
0

对于 Cordova 7 和 iPhone 7 + iOS 11.0.3,修改根目录 config.xml 并添加它非常有效:

<platform name="ios">
    <preference name="DisallowOverscroll" value="true" />
    <preference name="UIWebViewBounce" value="false" />
    ... (other stuff) ...
</platform>
于 2018-02-01T22:30:17.540 回答
0

打开 xCode -> 从左侧菜单中找到并单击 config.xml -> 并将 DisallowOverscroll 值更改为 true 或通过替换以前的代码来使用此代码。

 <preference name="DisallowOverscroll" value="true" />
于 2017-09-06T06:06:02.820 回答