停止Phonegap IOS中的滚动/反弹
我正在使用IOS(ipad)的最新版本的PhoneGap,我似乎无法禁用整个应用程序的垂直overscroll /反弹。 我不介意内部元素,但是当您向上或向下滑动时,看起来相当奇怪,整个应用程序会上下跳动。
我已经尝试在.plist中设置UIWebViewBounce
为no
,但是这似乎没有做任何事情。
感谢帮助:)
你必须在你的config.xml文件中修改一个属性。 只需将以下偏好设置为true
<preference name="DisallowOverscroll" value="true" />
接受的答案没有为我工作,我不得不将UIWebViewBounce
设置为false
:
<preference name="UIWebViewBounce" value="false" />
现在Phonegap 3.0以上的版本使用下面的config.xml文件中的syntex,它将100%
<preference name="DisallowOverscroll" value="true"/>
如果您没有任何运气,将<preference name="DisallowOverscroll" value="true"/>
到config.xml中,则可能是更改了错误的文件。 而是在整个phonegap目录中search“DisallowOverscroll”。 你应该find几个实例。 将这些更改为true.
干杯。
如果没有其他工作,尝试删除-webkit-overflow-scrolling: touch
从你的CSS -webkit-overflow-scrolling: touch
…如果你有它!
使用这种方式:
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();
欲了解更多详情或提示和技巧,请阅读这篇文章点击
有一种方法,我曾经做到这一点。 但它不是传统的,因为它处理本地编码。 在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分配工作。
这是运行phonegap 3.0我的应用程序的工作:将以下行添加到config.xml
<preference name="webviewbounce" value="false"/>
在项目的config.xml中,在iOS的首选项下将DisallowOverscroll设置为true。 默认情况下它是错误的,这使整个视图与视图的内部元素一起滚动。
<preference name="DisallowOverscroll" value="true" />
在项目的config.xml中,在iOS的首选项下将DisallowOverscroll设置为true。
<preference name="DisallowOverscroll" value="true" />
谢谢你所有的答案。 但是,如果你有问题在Windows Phone这里是解决scheme。 只需转到MainPage.xaml.cs文件并replace下面的函数..
public MainPage() { InitializeComponent(); this.CordovaView.DisableBouncyScrolling = true; this.CordovaView.Loaded += CordovaView_Loaded; }
它对我的作品:)
我有一个类似的问题,但无法解决我迄今为止发现的所有解决scheme(如编辑config.xml)。
但最后,只需编辑主体的CSS属性,然后修复:
html,body { overflow: auto; height:100%; }
试试这个如果你是ionic framework用户Abc.html文件里面的内容。
<ion-content has-bouncing="false">
用这个:
<preference name="UIWebViewBounce" value="false" />
最好在config.xml中修改两个元素,如下所示:
<preference name="DisallowOverscroll" value="true"/> <preference name="UIWebViewBounce" value="false" />
这对我有效。 尝试在phonegap应用程序的config.xml文件中添加以下代码:
<preference name="DisallowOverscroll" value="true">
打开xCode – >find并从左侧菜单 – >中单击config.xml,并将DisallowOverscroll的值false更改为true或通过replace前一个来使用此代码。
<preference name="DisallowOverscroll" value="true" />