如何防止应用程序运行在电话差距垂直滚动?

我正在尝试电话差距,并且我希望我的应用程序在用户在屏幕上拖动手指时不上下滚动。 这是我的代码。 谁能告诉我为什么它仍然允许滚动?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta name = "viewport" content = "user-scalable=no,width=device-width" /> <!--<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />--> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <!-- iPad/iPhone specific css below, add after your main css > <link rel="stylesheet" media="only screen and (max-device-width: 1024px)" href="ipad.css" type="text/css" /> <link rel="stylesheet" media="only screen and (max-device-width: 480px)" href="iphone.css" type="text/css" /> --> <!-- If you application is targeting iOS BEFORE 4.0 you MUST put json2.js from http://www.JSON.org/json2.js into your www directory and include it here --> <script type="text/javascript" charset="utf-8" src="phonegap.0.9.5.1.min.js"></script> <script type="text/javascript" charset="utf-8"> // If you want to prevent dragging, uncomment this section /* function preventBehavior(e) { e.preventDefault(); }; document.addEventListener("touchmove", preventBehavior, false); */ /* If you are supporting your own protocol, the var invokeString will contain any arguments to the app launch. see http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html for more details -jm */ /* function handleOpenURL(url) { // TODO: do something with the url passed in. } */ function onBodyLoad() { document.addEventListener("deviceready",onDeviceReady,false); } /* When this function is called, PhoneGap has been initialized and is ready to roll */ /* If you are supporting your own protocol, the var invokeString will contain any arguments to the app launch. see http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html for more details -jm */ function onDeviceReady() { // do your thing! navigator.notification.alert("PhoneGap is working") } touchMove = function(event) { // Prevent scrolling on this element event.preventDefault(); } </script> <style> #container { width:100%; height:100%; } </style> </head> <body onload="onBodyLoad()"> <div id="container" ontouchmove="touchMove(event);"> </div> </body> </html> 

如果你使用cordova2.3.0 +findconfig.xml,并添加以下行:

<preference name="UIWebViewBounce" value="false" />

或在Cordova 2.6.0 +中:

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

在加载页面禁用拖动时运行此代码:

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

以下是jQuery的一个例子:

 $(document).ready(function() { document.addEventListener('touchmove', function(e) { e.preventDefault(); }, false); }); 

如果您使用的是Cordova 2.6.0以上的版本 ,请添加/修改以下行:

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

在你的configuration文件中使用

 <preference name="webviewbounce" value="false" /> <preference name="DisallowOverscroll" value="true" /> 

你没有说这是一个本地应用程序还是一个networking应用程序。

如果这是一个本地的应用程序,你可以closures在web视图上滚动

 UIScrollView* scroll; // for(UIView* theWebSubView in self.webView.subviews){ // where self.webView is the webview you want to stop scrolling. if([theWebSubView isKindOfClass:[UIScrollView class] ]){ scroll = (UIScrollView*) theWebSubView; scroll.scrollEnabled = false; scroll.bounces = false; } } 

否则这里是在phonegap维基上的一个链接,以防止滚动。 http://wiki.phonegap.com/w/page/16494815/Preventing-Scrolling-on-iPhone-Phonegap-Applications

将以下条目添加到config.xml文件中:

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

对我来说,它的工作是完美的,当我用jQuery的身体select器。 否则,我无法打开Phonegap的外部链接。

 $('body').on('touchmove', function(evt) { evt.preventDefault(); }) 

在2.6.0中将UIWebViewBounce更改为DisallowOverscroll

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

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

本地化并将此行添加到AppDelegate.m文件

 self.viewController.webView.scrollView.scrollEnabled = false; 

将它放在 – (BOOL)应用程序中:(UIApplication )application didFinishLaunchingWithOptions * section。

现在只需在config.xml文件中将<preference name="DisallowOverscroll" value="false" /><preference name="DisallowOverscroll" value="true" />

首先你要做的是你应该在body unload方法中添加事件监听器。

只需在触摸移动方法中放置此行。

它不会滚动document.addEventListener(“touchstart / touchmove / touchend”)。 这3个中的任何一个。

 function touchMove (event e) { e.preventDefault; } 

如果你的.plist文件中有UIWebViewBounce为NO。

然后用简单的CSS会使内容不可滚动。 尝试添加这种风格溢出:隐藏在你想要禁用滚动的div。

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