電話のギャップを試しています。ユーザーが画面上で指をドラッグしたときに、アプリケーションが上下にスクロールしないようにします。これは私のコードです。なぜスクロールがまだ許可されているのか誰にも教えてもらえますか?
<!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>
使用している場合 Cordova 2.3.0+ config.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);
});
設定ファイルで使用
<preference name="webviewbounce" value="false" />
<preference name="DisallowOverscroll" value="true" />
Cordova 2.6.0 + find config.xmlを使用している場合は、次の行を追加/変更します。
<preference name="DisallowOverscroll" value="true" />
Config.xmlファイルに次のエントリを追加します。
<preference name="DisallowOverscroll" value="true" />
これがネイティブアプリなのかウェブアプリなのかは言わなかった。
これがネイティブアプリの場合、ウェブビューのスクロールをオフにできます
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 wikiのリンクがあります。 http://wiki.phonegap.com/w/page/16494815/Preventing-Scrolling-on-iPhone-Phonegap-Applications
プロジェクトのconfig.xmlで、iOSの設定でDisallowOverscrollをtrueに設定します。デフォルトではfalseです。これにより、ビュー全体がビューの内部要素とともにスクロールされます。
<preference name="DisallowOverscroll" value="true" />
2.6.0でUIWebViewBounceをDisallowOverscrollに変更しました
私にとって、jqueryでbody-selectorを使用するとき、それは完璧です。そうでなければ、Phonegapで外部リンクを開くことができませんでした。
$('body').on('touchmove', function(evt) {
evt.preventDefault();
})
ネイティブになり、この行をAppDelegate.mファイルに追加します
self.viewController.webView.scrollView.scrollEnabled = false;
-(BOOL)application:(UIApplication)application didFinishLaunchingWithOptions *セクションにドロップします。
今、あなたはただ<preference name="DisallowOverscroll" value="false" />
から<preference name="DisallowOverscroll" value="true" />
config.xmlファイル。
プロジェクトのconfig.xmlで、iOSの設定でDisallowOverscrollをtrueに設定します。
最初に行う必要があるのは、イベントリスナーをbody unloadメソッドに追加することです。
この行をタッチムーブメソッドに追加するだけです。
document.addEventListener( "touchstart/touchmove/touchend")をスクロールしません。これらのいずれか3。
function touchMove (event e) {
e.preventDefault;
}
.plistファイルでUIWebViewBounceがNOになっている場合。
次に、単純なcssを使用すると、コンテンツをスクロールできなくなります。このスタイルを追加してみてくださいoverflow:hidden divでスクロールを無効にする場所。