resizeイベントを使用する場合は、iOS Safariでの挙動に注意

ウインドウをリサイズしたタイミングでJavaScriptを再度実行したりするときにresizeを使用することがあります。
window.addEventListener('resize', function() {
// リサイズ時の処理
}, false );PCの場合、リサイズが発火するのはユーザーが意図的にウインドウの幅を変えたときになりますが、SPの場合はスクロールの影響によって発火してしまうので注意が必要です。
発生する現象
例えば、iOS Safariでは画面を下にスワイプすると上のアドレスバーが小さくなり、その影響でブラウザの表示領域が大きくなります。

このアドレスバーが小さくなるのも「ウインドウがリサイズされた」として発火してしまいます。
スマホでは発火しないようにする
基本的にスマホ表示でリサイズ関連の処理は不要なので、resize以降の処理は条件分岐で発火しないようにしておきましょう。
スマホでは処理を中断する
resizeの中に下記のコードを追加すれば、スマホでは処理が中断されます。
let ua = navigator.userAgent;
if ((ua.indexOf('iPhone') > 0 || ua.indexOf('Android') > 0) && ua.indexOf('Mobile') > 0) {
return false
}ポートレートモードに切り替えたときは発火するようにする
スマホでもポートレートモード(画面横に切り替え)にしたときは発火したい場合、イベントでorientationchangeを使うと発火できます。
window.addEventListener('orientationchange', function() {
// ポートレートモード切り替え時の処理
}, false );ポートレートモードでサイトを見る人はほとんどいないと思いますが、念のためresizeで中断するように指定した場合は、忘れずにこちらも指定しておきましょう。

CSS疑似要素(::beforeや::after)のcontent内で改行したり半角スペースを複数入力する方法
CSSやJavaScriptでスクロールバーの横幅を取得する方法
WordPressの常時SSL化で、下層ページのhttpからhttpsへのリダイレクトがうまくいかない場合に確認すること
TwitterとFacebook用のOGP設定方法と表示確認方法
js-cookieでウェブサイトのダークモード表示設定をユーザーごとに保存しておく方法
ウェブサイト上で簡単にWYSIWYGエディタを実装する「TinyMCE」
コーディング時にちゃんと意識したい複数語の連結方法一覧(キャメルケース・スネークケース・ケバブケース)
Nuxt.jsでページを作成・追加する方法|Nuxt.jsの基本
mac環境にnodebrew経由でNode.jsをインストールしてバージョンを管理する方法
Vue CLIのプロジェクト管理用のGUI機能から環境を構築する
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Obsidianで整理した知識をAnkiで定着させる方法
Figma × Keyboard Maestroでどこまで効率化できる?
マウス操作の完成度が高いウインドウリサイズアプリ「Magnet」
Macで複数ディスプレイを使っている場合に便利な設定集
AppCleanerでMacアプリを関連ファイルごと完全に削除する
操作に没頭できる!Firefox版 Arcのようなブラウザ「Zen Browser」
chezmoi(シェモア)で始めるdotfiles管理
GitHubの通知を見逃さない!通知に特化したアプリ「Gitify」
Keyboard Maestroの変数基礎
Neovimを使い始める最初の一歩として便利な「LazyVim」