19

Windows Phone 8 Cordovaアプリケーションでは、アプリ内で水平方向にクリックアンドドラッグし、ディスプレイの水平方向の端を超えてパン/スクロールすることができます。Cordova WindowsPhone8スタンドアロンテンプレートアプリケーションを参照してください。

Cordovaアプリの端を越えて水平方向にパンする

このテンプレートアプリケーションの背後にあるHTMLには、私が見る限り、適切なビューポート仕様があります。

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

このバグにより、あらゆる種類のスワイプジェスチャ検出が役に立たなくなります。iOS UIScrollViewコントロールには、多少類似した効果をキャンセルできるbouncesプロパティがあります。

これはCordovaのバグですか?このパンが発生しないように、Cordova WebBrowserのコンテナーに配置できる設定はありますか?

4

8 に答える 8

19

タグの2つの追加のCSSプロパティによりbody、スタンドアロンテンプレートアプリと私が作業していた元のアプリの両方でのパンの問題が修正されました。

body {
  overflow: hidden;
  -ms-content-zooming: none; }

このms-content-zoomingプロパティは、要素の子である要素内の垂直スクロールを制限しませんbody

于 2013-02-28T03:36:41.170 に答える
15

HTMLのbodyタグでこれを使用してください...バウンスとラバーバンドの効果を修正しました。

 backface-visibility:hidden;
-webkit-backface-visibility:hidden;
 overflow: hidden;
-ms-content-zooming: none;
-ms-touch-action:none;
于 2013-07-17T10:58:30.403 に答える
10

これは本当に機能するソリューションです。

 <style>
    html {
        -ms-touch-action: pan-x;
        touch-action: pan-x;
    }

    body {
        -ms-touch-action: pan-y;
        touch-action: pan-y;
        -ms-content-zooming: none;
    }
</style>

これは、アプリに水平スクロールがないことを前提としています(ハイブリッドネイティブのようなアプリにはないはずです)

于 2014-03-19T09:31:22.817 に答える
8

MainPage.xaml.csファイルに次のコードを追加できます。

    // Constructor
    public MainPage()
    {
        InitializeComponent();
        .... // some default initialization code was here
        // and disable bouncy scrolling option:
        this.CordovaView.DisableBouncyScrolling = true;
    }
于 2013-12-31T09:03:08.247 に答える
3

正解はthis.CordovaView.DisableBouncyScrolling = true;MainPage.xaml.csファイルに追加することですが、この場合、このxamlファイルを送信できないため、AdobePhonegapBuildに使用することはできません。

于 2015-02-01T17:23:12.487 に答える
2

body {-ms-touch-action:none; }

于 2013-06-11T23:53:47.893 に答える
1

メインラッパーで絶対位置を使用し、ユースケースを修正しました。

于 2013-03-26T12:22:58.203 に答える
0

これにより、phonegapに関する私の問題が解決しました。

if (navigator.userAgent.match(/IEMobile/))
    {
        var ieBodyHeight = $("body").outerHeight();
        var ieBodyHeightNew = ieBodyHeight - 55;
        $("head").append('<meta name="viewport" content="height=' + ieBodyHeightNew + '" />');
    }
于 2015-05-21T19:50:08.760 に答える