カランのブログ

Kalan 頭像照片,在淡水拍攝,淺藍背景

四零二曜日電子報上線啦!訂閱訂起來

ソフトウェアエンジニア / 台湾人 / 福岡生活
このブログはRSS Feed をサポートしています。RSSリンクをクリックして設定してください。技術に関する記事はコードがあるのでブログで閲覧することをお勧めします。

今のモード ライト

我會把一些不成文的筆記或是最近的生活雜感放在短筆記,如果有興趣的話可以來看看唷!

記事のタイトルや概要は自動翻訳であるため(中身は翻訳されてない場合が多い)、変な言葉が出たり、意味伝わらない場合がございます。空いてる時間で翻訳します。

iOS マウスダウンイベントのトリガーに関する問題

iOSの一部のバージョンでは、mousedownイベントハンドラが正常に動作しない場合がありますが、他のデバイス(Androidなど)ではmousedownは正常に機能します。

解決策は、モバイルデバイスでmousedownイベントハンドラを使用せず、touchStartを使用することですが、トリガーの順序が影響を受けるかどうかはわかりません。元々は、クリックイベント内では、blurが最初にトリガーされ(存在する場合)、その後にクリックイベントがトリガーされるようにしていましたが、この点を避けるためにmousedownを使用しています。

簡単な実験をCodePenで行います:

See the Pen touchstart-test by 愷開 (@kjj6198) on CodePen.

トリガーの順序はtouchstart > mousedown > blurとなります。したがって、touchstartmousedownの両方のイベントを同時に追加した場合、両方のイベントがサポートされている場合は、touchstart > mousedownの順序で発生するようです。

インターネットで調べてみると、iOS 13以前ではmousedownイベントがトリガーされないことがわかりました。また、iPadの場合、タッチが指から来たかApple Pencilから来たかを判別することもできるようです。

結論

  • iOSmousedownなどのバインディングを行う場合は注意が必要です。できるだけタッチ系のイベントを使用してください。
  • iOS 13とiOS 13以前は分岐点であり、別途テストが必要です。

ここに詳細な動作を記録しておきます。

次の記事

カンマに数字を追加する正規表現の説明

前の記事

站在中間的那群人 / 做出選擇的那群人

この文章が役に立つと思うなら、下のリンクで応援してくれると大変嬉しいです✨

Buy me a coffee