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の基本|概要やインストールから日本語化など最低限の設定方法
WordPressでbloginfo()の一部パラメーターの廃止・非推奨に注意!
Movable TypeでAssetURLやEntryPermalink・ContentPermalinkで出力されるパスを絶対パスから相対パスに変える
JetpackでのError during WebSocket handshakeの解決方法
Font Awesome 5の基本的な使い方と、Font Awesome 4との違い
webpackでTop-Level Awaitを使用して、一番上位でもawaitを使えるようにする方法
Vue CLIをインストールしたのに「command not found: vue」と表示されてしまう場合の対処法
Google Chromeでinput要素の補完機能を使うと背景に色がついてしまう問題
「EWWW Image Optimizer」を使ってWordPressをWebPに対応する方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
ScreenFlowでできる3種類のカット編集方法
macOS Mojaveのスクリーンショット機能についてまとめる
BetterTouchToolを使って、ショートカットキーでAirPods ProをMacBook Proに接続する方法
チャットサービス統合アプリのStationがChrome拡張機能になって登場!キーボードだけでよくアクセスするサイトへ移動できる
動画の圧縮をFinder右クリックメニューの「選択したビデオファイルをエンコード」から行う
CSS Nite in Kobe, vol.54「XDで作ったワイヤーフレームを元に制作するウェブビジュアルデザインと精度の高いプロトタイプをコーダーに渡すときのポイントのセミハンズオン」に参加してきました
PCの単語登録(辞書登録機能)の辞書分類やルールについて改めて考えてみる
効率的なマークアップが出来るようになるEmmetでCSSを書く時の基本
macOS 11 Big Sur以降メニューバー右上に固定表示されてしまう時計表示を目立たなくする
npmをGUIで管理するアプリケーション「ndm – npm desktop manager」