Zenn
🐀

Javascript でマウス&タッチ両対応なら pointer イベントを使おうよ、古いブラウザを見捨ててもよいならね

2025/03/23に公開1

タイトルが言いたいことの10割。

とあるウェブアプリが、タッチパネル付きノートパソコンのトラックパッド操作で動作しなかったのでソースを見たところ、'ontouchstart' in document でタッチ対応と判別したらtouchstart/touchendを利用、非対応ならmousedown/mouseupを利用、という処理をしていた。
最近のブラウザならpointerdown/pointerupを使えば、タッチ操作でも、マウス操作でも、タッチ対応デバイスのマウス操作でも対応できるのになぁ。

軽くググってみると mouse イベントと touch イベントをいかに同居させるか、というアプローチがかなり多いので、この記事で「pointer イベントという選択肢もあるよ」という情報を増やしておく。

https://www.w3.org/TR/pointerevents/

https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events

Discussion

junerjuner

むしろドラッグ操作する場合は pointerevent ならsetPointerCapture() すれば要素を超えても安心みたいなのがある。

ログインするとコメントできます