この jsbin デモtouchmove
でイベントを調べようとすると、Chrome と Opera for Android で 1 回だけトリガーされ、その直後に、イベントをトリガーし続けるのではなく、イベントがトリガーされますか?touchcancel
touchmove
W3C仕様touchmove
と、Android用FirefoxとAndroidのデフォルトブラウザの両方でのイベントの動作に基づいて、タッチイベントが機能するはずの方法はtouchmove
、タッチがまだオンになっている間にイベントがトリガーされ続けることだと私には思えますページ。ただし、この jsbin でテストしようとした後、次のログ メッセージが表示されました。
touchstart event; starting on (140,197) on the screen, or (381,536) on the page.
touchend event; starting on (undefined,undefined) on the screen, or (undefined,undefined) on the page.
touchstart event; starting on (181,137) on the screen, or (492,372) on the page.
touchmove event; starting on (182,153) on the screen, or (495,416) on the page.
touchcancel event; starting on (undefined,undefined) on the screen, or (undefined,undefined) on the page.
これは、最初に画面をタップし ( と で示されています) 、次に画面をドラッグしたとき (touchstart
と)に起こったことです。上記と同じ仕様に従うと、 touchcancel イベントは、ブラウザー インターフェイスなどの何かが干渉する場合にのみ実行する必要があります (正しく理解している場合)。touchend
touchstart
touchmove
touchcancel
私は窓から離れずに体の上で指を滑らせただけだったので、これには本当に戸惑いました。
Chrome 32とOpera 19 for Androidでこの予期しない結果が得られます。