5

我正在用 PhoneGap 制作一个移动应用程序。我有这个——

function preventBehavior(e)
{
e.preventDefault();
};
document.addEventListener("touchmove",preventBehavior, false);

您知道如何通过拖动将页面从智能手机屏幕上拖出一小段距离,然后当您释放它时它会立即弹回?而你看到的背后都是黑色的?这就是这段代码要防止的。它确实如此。

但它也阻止了所有标准滚动,例如滚动列表。有谁知道解决方案?

4

3 回答 3

7

Cordova 1.7+ 的简单解决方案 在您的 Xcode 项目中找到 Cordova.plist。顶部会显示“UIWebViewBounce”。将此设置为否。

于 2012-07-29T13:37:59.813 回答
3

你有两个选择:

  1. iScroll - 在产生这种效果方面非常有效。当然,它确实有它的局限性。

  2. -webkit-溢出滚动:触摸;在 ios 5 中引入了一种新的 css 方法,它运行良好,但在 phonegap 中也有其局限性。

我个人将 iScroll 用于 phonegap 应用程序,如果您没有超大的滚动项目列表,它会非常有用。如果您正在寻找一种更原生的方式,我建议使用溢出滚动方法,这已被证明会在 webview 中引起一些奇怪的效果。Phonegap 使用 webview 与移动 safari,因此您的支持有所不同。

iScroll - http://cubiq.org/iscroll-4 webkit-scrolling - http://johanbrook.com/browsers/native-momentum-scrolling-ios-5/

于 2012-04-30T06:53:00.637 回答
2

你应该在你的 head 标签中添加这个:(现在不需要你的监听器代码)

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />

这基本上禁用了缩放(放大/缩小)和您不想要的拖动效果。所以页面不会滚动,但仍然可以跟踪 touchmove 事件。

于 2012-04-30T07:53:45.213 回答