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

HTMLタグの入力をラクにするスニペット集
「DevTools z-index」でz-indexがかかっている要素をChrome開発者ツールに一覧表示させる
SourceTreeでマージ時に「fatal: You have not concluded your merge (MERGE_HEAD exists).」と表示される場合の対処法
WordPressでbloginfo()の一部パラメーターの廃止・非推奨に注意!
SourceTreeでBacklogのGitを使うときに、権限エラーになってしまう場合の解決法
iOS Safariで指定したフォントサイズにならない場合の対処法
1Passwordの開発者向け機能(SSH Agent / Environments / 1Password CLI / Developer Watchtower)
.gitignoreに含めた方がいいファイル・フォルダが一覧でまとまっている「gitignore.io」
Vue CLIのプロジェクト管理用のGUI機能から環境を構築する
Visual Studio Codeで英単語のスペルチェックをしてくれる拡張機能「Code Spell Checker」
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
コーディング時にちゃんと意識したい複数語の連結方法一覧(キャメルケース・スネークケース・ケバブケース)
初めての一眼レフカメラ「Canon EOS Kiss X7 ダブルズームキット」を購入しました
iOS Safariでinputタグにフォーカスを合わせると、自動で画面が拡大してしまう原因と解決方法
Fantastical 2 for Macでスムーズにカレンダーの登録を行う
Figmaでカラーやテキストのスタイルをまとめて登録するプラグイン「Styler」
iPadでスクリーンショットを撮るいくつかの方法
高機能で定番なテキストエディタ「Jedit Ω」で自分好みの編集を実現する
Keyboard Maestroのバージョン9.0がリリース!ダークモード対応やJSON関連のアクションが追加
Macの音量や輝度を「細かく調節」したり「音量を確認しながら調節」する方法
Macのデフォルトシェルをbashからzshへ変更する方法