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

Visual Studio Codeのファイル横に表示されるファイルアイコンのテーマまとめ
iTerm2で起動時に左上に表示される「Tip of the Day(今日のTip)」を非表示にする方法
EmmetのWrap with Abbreviationで複数行のマークアップを効率的に行う
Macで.pemを使ってAmazon EC2インスタンスへSSH接続する方法
属性・Class・IdなどHTMLタグの細かい部分を見ていこう!!
WordPressの自動バックグラウンド更新を無効にする方法とその注意点
Vue.jsを使う人が最低限導入しておきたいVisual Studio Codeの拡張機能
ウェブ上でLaTeXで数式をキレイにプレビューするJavaScriptライブラリ「MathJax」
.htaccessを使って、httpからhttpsへリダイレクトする設定方法
Visual Studio Codeで「.html」拡張子以外のファイルでもEmmetを使えるようにする
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Nuxt.jsでページを作成・追加する方法|Nuxt.jsの基本
webpackでTop-Level Awaitを使用して、一番上位でもawaitを使えるようにする方法
Alfredの検索ボックスを、磨りガラスのように背景がぼやけた見た目にする方法
Fantastical 2で予定の登録時に使えるキーワードまとめ
SourceTreeでURLからクローンするときに自動で入力される「保存先のパス」を変更する方法
Google Chromeの新規タブページのウェブページへの「ショートカット」を非表示にする方法
Dropbox Ignore node_modulesを使って「node_modules」を「同期の無視」に追加する方法
Path Finder 8で動作がおかしいと思ったときにチェックすること
iTerm2でさらに細かい機能の設定ができる環境設定の「Advanced」タブ