【CSS】iOSのSafariでダブルタップしたときの挙動を指定する
2023.08.20 Posted by Coding_team
iOSのSafariで画像などをダブルタップすると拡大できる機能があります。
しかし、場合によってはダブルタップで拡大してほしくないこともあると思います。
(ゲーム要素や、メガドロップダウンメニューなど)
そこで、CSSの「touch-action」というプロパティを使って、特定の要素ではダブルタップを無効にする方法をご紹介します。
ダブルタップを無効にする方法
ダブルタップを無効化したい要素に対して以下の記述を追加します。
1 2 3 |
.wrap { touch-action: manipulation; } |
「touch-action」プロパティはiOS13以降サポートされています。
touch-actionに指定できる値
touch-actionプロパティには、以下の値を設定することができます。
auto | ブラウザの挙動に従います。 |
---|---|
none | すべてのパンやズームを禁止します。 |
pan-x | 水平方向のパン以外を禁止します。 |
pan-left | 左方向以外のパンを禁止します。 |
pan-right | 右方向以外のパンを禁止します。 |
pan-y | 垂直向以外のパンを禁止します。 |
pan-up | 上向以外のパンを禁止します。 |
pan-down | 下向以外のパンを禁止します。 |
pinch-zoom | 複数の指によるパンやズームを有効にします。 |
manipulation | パン、ズームは有効にしますが、ダブルタップなどによる操作は禁止します。 |
参考 : CSS – touch-action – とほほのWWW入門
touch-actionのデモはこちら
この中の「manipulation」値を使ってダブルタップを無効化しましたが、他にも上下・左右スクロールの禁止なども指定できます。
また、pan-left、pan-right、pan-up、pan-down、pinch-zoomの5つに関しては、手元のiOS16のChrome、Safariで動作を確認できませんでした。
「touch-action」を過信・多用するのは注意が必要かもしれません。
関連記事こちらの記事も合わせてどうぞ。