2013年5月31日金曜日

Javascriptでスマホの長タッチイベントを検知する

Javascriptでスマホのlongtouchのイベントを取得したいと思う。
だけど、用意されているtouchイベントは
touchstart
touchend
touchmove
touchcancel

だから自分でタイマーを使って長くタッチされたときの検出する。

touchstart内でsetTimeoutを使うわけです。ちなみにsetTimeoutを使うときにthisの値が変わってしまう件はこの記事へ


サンプルはこちら
枠内をtouchし続けると メッセージが表示されます。
詳しくはサンプルのソースを見てください。

さらに追加情報

たぶん、タッチ座標の情報も取得したいんじゃないかと思う。
touchイベントから座標を取得する方法はいろんなところに書かれているが、
自分がはまってしまったのはtouchendイベントで渡されるイベントオブジェクトから座標を取得しようとしていたこと。
落ち着いて考えてみれば、touchendで指はもう離れているわけだから座標を取得しても0が返される。
正しい方法はtouchstart時点で座標を取得してどこかに格納しておくってかんじかな。

0 件のコメント:

コメントを投稿