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で中断するように指定した場合は、忘れずにこちらも指定しておきましょう。

WordPressのデータを取得できるWP REST APIの使い方
Webサイト制作の基礎の基礎、HTMLって何?
Emmetで複数のタグを一括展開して、コーディングスピードをさらに上げる方法
iOS Safariで文章の最後の1文字だけ改行されてしまう現象の対処法
サイトを運営する時必ず登録しておきたいGoogle Search Console(サーチコンソール)の登録方法
Visual Studio Codeで正規表現にマッチするか確認できる拡張機能「Regex Previewer」
Local by FlywheelでWordPressのローカル開発環境構築のハードルが一気に下がる
Gitで最初に設定しておくユーザー名とメールアドレスのグローバル設定
Nuxt.jsで「Classic mode for store/ is deprecated and will be removed in Nuxt 3.」のエラーメッセージが表示される場合の対処法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Figmaでデザインを作成するときの基本的な操作方法
Alfredでダークモードを切り替えるWorkflowを作成する方法
MacでCPUやメモリ・ネットワークなどの状態をメニューバーに表示させる「iStat Menus」
QuickTime Playerとプレビュー.appで動画の一部を画像として書き出す方法
MAMPでローカル開発環境にWordPressをインストールする手順
iOS Safariの機能拡張アプリ「Svadilfari」を使って、ウェブ閲覧にジェスチャーを追加する
Google日本語入力の辞書をATOKにインポートする方法
技術的な文章を書く時の自分ルール
Google Chromeの別ユーザーへの切り替えを簡単に行うKeyboard Maestroマクロ
キーボードショートカット以外の新しい選択肢、左手用インプットデバイス「Orbital 2」