これについてはすでに数十億のスレッドがあることは知っていますが、解決策を得ることができません。
問題: すべてのスワイプ ジェスチャが認識されるわけではありません。
セットアップ: Android 4.0.4、PhoneGap 2.1、および jQuery Mobile 1.2
touchMove(スクロールまたはスワイプ)で(ほぼ毎回)取得します
Miss a drag as we are waiting for WebCore's response for touch down.
問題は、セットアップがタッチストップを適切に検出できないことのようです。
現在、スワイプには次のものを使用しています。
(".mainList").swipeleft(function() {
$.mobile.changePage("status.html", {
transition : "slide"
});
console.log("swipe left!!!");
});
これにより、スワイプが毎回正しくトリガーされるようになります。
// deactivate normal touch handling for swipe to work
document.ontouchmove = function(event) {
event.preventDefault();
};
この方法では、スワイプは毎回機能しますが、スクロール (もちろん) は機能しなくなります。この関数をページのヘッダーにのみ適用して、ヘッダーを「スワイプ可能」にし、コンテンツをスクロール可能にすることができますが、正しくスワイプすることはできません。しかし、これは本当の解決策とは言えません。
さまざまなスレッドから集めた次のヒントを試しました。
- 「.on」関数を使用してスワイプイベントをバインドします
- スワイプ イベントを ID ではなくクラスにバインドする
- 「ontouchstart」と「ontouchend」を使用して水平スクロールを検出してみてください。タッチエンド イベントはスワイプごとにトリガーされるわけではないため、これは機能しません。
- $.event.special.swipe.scrollSupressionThreshold のようなスワイプ定数のさまざまな値を試してください
私が思ったように、スワイプが実際のスワイプなのか水平スクロールなのか、設定が表示されていない可能性があります。
- css オーバーフローによる水平スクロールの防止
- カスタマイズされた cordovarwebview を使用して水平スクロールを防止する
- HTML のビューポート メタ タグに異なる値を使用して、正しいページ幅を設定する
event.preventDefault(); を除くすべての試行。アプローチしても状況は変わりません。2 回、3 回、または 4 回のスワイプ ジェスチャが正しく認識されるだけです。
同じ問題を抱えていて、解決策がある人はいますか? :D Thx 事前に