2012-04-28 12 views
6

モバイル用のhtml5のインターフェイスで作業しようとしています。 私はtouchstart/touchmove/touchend/touchcancelを使用してmouvementを実行しようとします。 しかし、私はこれをしようとしたとき、私はオールウェイズquikly auの「touchcancel」とその後、これ以上touchmoveを持ってmouvement ...html5/android touchcancel

に従うことをしようとすると:http://miniapps.co.uk/code/touchcancel/ が、それは完璧に動作し、私は問題ありません。

しかし、問題は、私のキャンバスを妨害するウェブブラウザのmouvementから来ると思います。 これを解決できるかどうか知っていますか?

//私はより多くを説明しよう: - ここには、私のテストコードは次のとおりです。http://frys.free.fr/mNaissance/test.html それは私がモバイルでの作業にしよう「ジグソーパズル」パズルのコードです。 私は "ログ" divをテキストの下に置いていました。 そして、私がグレーのキャンバスで「タッチモーブ」をするとき、私は非常に速く「タッチキャンセル」を持ち、もはや「タッチモーブ」はありません もっと明確ですか?私の貧しい英語のために申し訳ありません!ヘルプ

+0

私はあなたが何を言っているのか分かりません。もっと正確にしてください。可能であれば、動作しないコードを追加するか、あなたが試したことを説明するより多くの例 – Entreco

+0

私は同じ問題だと思うものに遭遇しました。問題は「Androidのブラウザでは、明らかに理由がないためtouchcancelイベントが発生することがあります。 //同じコードがiOSデバイス上でうまく動作する – Corkscreewe

+0

あなたのリンクは機能しませんでしたが、このような質問にはいくつかの手がかりがあります:http://stackoverflow.com/questions/15944197/ –

答えて

7

ため

おかげで私はこの理由を見つけたと信じて - Androidのブラウザ(だけでなく、Android向けChromeは4.0+)あなたがスクロールしようとしていると考えているので、touchcancelイベントを発生させます。あなたがするべきことは、キャプチャしているtouchmoveイベントの

event.preventDefault(); 

です。

+2

私のケースは関連していましたが、助けて。 OPのものと曖昧な問題があるかもしれない人のために、このSOの質問を参照してください:http://stackoverflow.com/questions/15944197/ –

+0

このソリューションは、同じ理由でデスクトップ版のChromeにも適用されるようになりました。 – thure

+1

これはAndroidブラウザとは関係ありません。これはブラウザがすべての場合に自動的にパンやズームなどの操作を引き継ぐ必要があるためです。その理由からブラウザは 'touchmove'を引き継ぐときに' touchcancel'イベントを発生させます。同じイベントに対して2つの異なるアクションを実行しないようにします(これはひどい結果を招くでしょう) – andreszs

関連する問題