This commit is contained in:
syuilo
2023-01-02 09:20:49 +09:00
parent a4a614e180
commit 8bc0aa3e7b
2 changed files with 13 additions and 23 deletions

View File

@ -1,23 +1,13 @@
import { deviceKind } from '@/scripts/device-kind';
const isTouchSupported = 'maxTouchPoints' in navigator && navigator.maxTouchPoints > 0;
export let isTouchUsing = false;
export let isTouchUsing = deviceKind === 'tablet' || deviceKind === 'smartphone';
export let isScreenTouching = false;
if (isTouchSupported) {
if (isTouchSupported && !isTouchUsing) {
window.addEventListener('touchstart', () => {
// maxTouchPointsなどでの判定だけだと、「タッチ機能付きディスプレイを使っているがマウスでしか操作しない」場合にも
// タッチで使っていると判定されてしまうため、実際に一度でもタッチされたらtrueにする
isTouchUsing = true;
isScreenTouching = true;
}, { passive: true });
window.addEventListener('touchend', () => {
// 子要素のtouchstartイベントでstopPropagation()が呼ばれると親要素に伝搬されずタッチされたと判定されないため、
// touchendイベントでもtouchstartイベントと同様にtrueにする
isTouchUsing = true;
isScreenTouching = false;
}, { passive: true });
}