タッチスクリーンであるかをJavaScriptで判定する

投稿日 2020/12/28

タッチスクリーン有無判定

// タッチスクリーン有無判定
var isTouchDevice = function() {
  return 'ontouchstart' in window;
};

理屈

タッチスクリーンがある場合、window.ontouchstartnullで初期化されます。
タッチスクリーンがない場合、window.ontouchstartは初期化されていません。

補足

マウス有無判定

モバイル環境でもマウス系のリスナーがnullで初期化されているため、'onmousedown' in windowで判定しても、マウス有無の判定には使えません。

msPointerEnabled or pointerEnabled

navigator.msPointerEnabledは、ブラウザがタッチ入力をサポートしているかの判定です。ブラウザが対応していてもタッチスクリーンがPCに接続されている保証にはなりません。そのため、navigator.msPointerEnabledtrueを返してもタッチスクリーンである保証はありません。

コメント