我在 IOS (ipad) 上使用最新版本的 Phonegap,我似乎无法在整个应用程序上禁用垂直过度滚动/反弹。我不介意内部元素,但是当您向上或向下滑动并且整个应用程序上下弹跳时,它看起来很奇怪。
我尝试在 .plist 中设置UIWebViewBounce
,no
但似乎没有做任何事情。
感谢帮助:)
我在 IOS (ipad) 上使用最新版本的 Phonegap,我似乎无法在整个应用程序上禁用垂直过度滚动/反弹。我不介意内部元素,但是当您向上或向下滑动并且整个应用程序上下弹跳时,它看起来很奇怪。
我尝试在 .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 目录中搜索“DisallowOverscroll”。您应该找到几个实例。将这些更改为true.
干杯。
在项目的 config.xml 中,在 iOS 的首选项下将 DisallowOverscroll 设置为 true。默认情况下,它是 false ,这会使整个视图与视图的内部元素一起滚动。
<preference name="DisallowOverscroll" value="true" />
如果没有其他方法,请尝试-webkit-overflow-scrolling: touch
从您的 css 中删除...如果您有它!
使用这种方式: -
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 发行版。
在项目的 config.xml 中,在 iOS 的首选项下将 DisallowOverscroll 设置为 true。
<preference name="DisallowOverscroll" value="true" />
谢谢大家的回答。但是,如果您在 Windows Phone 中遇到问题,这里就是解决方案。只需转到 MainPage.xaml.cs 文件并替换以下函数..
public MainPage()
{
InitializeComponent();
this.CordovaView.DisableBouncyScrolling = true;
this.CordovaView.Loaded += CordovaView_Loaded;
}
它对我有用:)
试试这个如果你是 ionic 框架用户 Abc.html 文件里面的内容。
<ion-content has-bouncing="false">
我有一个类似的问题,但无法用我目前找到的所有解决方案(比如编辑 config.xml)来解决它。
但最后,只需编辑 body 的 CSS 属性,它就可以修复:
html,body
{
overflow: auto;
height:100%;
}
这对我的运行 phonegap 3.0 的应用程序有效:将以下行添加到 config.xml
<preference name="webviewbounce" value="false"/>
这对我有用。尝试将此代码添加到 phonegap 应用程序的 config.xml 文件中:
<preference name="DisallowOverscroll" value="true">
用这个:
<preference name="UIWebViewBounce" value="false" />
最好将config.xml中的两个元素修改如下:
<preference name="DisallowOverscroll" value="true"/>
<preference name="UIWebViewBounce" value="false" />
DisallowOverscroll 对我不起作用。
解决方案是确保无处滚动。
例如,在我的情况下,它div
比下面的身体更宽(可以更高):
<body>
<div style="margin: 5%" width: 95%;>something</div>
</div>
现在,abovediv
比导致滚动的 body 大 5%。将宽度设置为 90% 可解决此问题。
更新 config.xml 后我没有运气,如果这是你的情况,试试这个。
对于适用于 iPhone + iOS 11 的 iOS,在 CDVThemeableBrowser.m 文件上,将属性设置为YES:
self.disallowoverscroll = YES;
对于 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>
打开 xCode -> 从左侧菜单中找到并单击 config.xml -> 并将 DisallowOverscroll 值更改为 true 或通过替换以前的代码来使用此代码。
<preference name="DisallowOverscroll" value="true" />