一部の android のネイティブ ブラウザーでは、ページに触れると、指が離されるまで表示の更新が停止するようです。これは、html 要素ベースのアニメーション (クラスの切り替え) とキャンバス ベースのアニメーションの両方で発生します。ただし、通常の js の実行は停止せず、他のイベントは通常どおり発生します。この問題があるデバイスでは、イルカ ブラウザも影響を受けているようです (ただし、Firefox ではありません)。
touchstart/move には、stopPropergation() と同様に preventDefault() が起動されています。cancelBubble = true; および e.returnValue = false;。CSS Webkit の選択も無効になっています。ページはスクロールしません。
同様の質問がここで尋ねられました: Android ブラウザーは touchStart で DOM をロックしますか?
しかし、この動作を克服できるかどうか、または少なくとも問題の影響を受けるデバイスを発見したいのですが、それはデバイスまたはバージョンの Android の問題ですか? 質問に答えられない場合は、デモを実行し、デバイス モデルとユーザー エージェント (デモ ページの下部に表示されます) と共に経験を報告すると、他の人や私自身が質問に答えるのに役立つかもしれません。
これは、動作を再現するためのデモと手順です。リンクの QR コードは、https://s3-eu-west-1.amazonaws.com/canvas-test-pd/tmp.pngにあります。
https://s3-eu-west-1.amazonaws.com/canvas-test-pd/index.html
Web ページには、上部にキャンバスがあり、下部に背景画像がある div があります。毎秒キャンバスがクリアされ、別の画像が表示され、div のクラスが切り替えられます (どちらも 0 と 1 の png の間で切り替わります)。これが数回切り替わったら、指をキャンバス (上部の灰色のボックス) に置いてそのままにします。アニメーションが継続するか (1 回か 2 回終了して停止する場合もあります)、視覚的な歪みがないかどうかを確認します。
更新 3.2 を実行している Galaxy Tab には、画面の表示を更新し続けるために必要な div だけでなく、ドキュメントの touchstart/end のハンドラーが必要なようです。ありがとうジンピック。
これを証明するのは困難ですが、メーカーのスキンが原因の問題であると信じ始めています.