私の製品Front Prepの質問一覧ページでは、面接の質問の横に会社のロゴを表示しています。ロゴにカーソルを合わせると、ツールチップに会社名が表示されます。ツールチップの遅延を0に設定していたため、ページ上でカーソルを動かすとツールチップが即座に表示されました。これを修正するために、200msの遷移遅延を追加しましたが、新しい問題が発生しました。複数のロゴ間を移動するたびに同じ200msの遅延を待つ必要があり、動作が遅く感じられました。この投稿は、ブラウザのツールバーやウェブサイトで見られる小さなインタラクションパターンについてです。私の解決策は3つの部分に分かれます。ロゴにホバーすると、ツールチップは開く前に200ms待機します。ツールチップが閉じると、300msのタイマーが開始されます。これをウォームウィンドウと呼びます。このタイマーが実行中に別のロゴにホバーすると、ツールチップは即座に開き、遅延をスキップします。タイマーが切れると、ページはコールドになり、200msの待機が戻ります。Front Prepでは、ツールチップはRadixとMotionで構築されています。コードは、コンポーネント間でisWarm状態を追跡するためにuseContext変数を使用しています。ホバー時に、コンポーネントはページがウォームかどうかを確認します。ウォームの場合はツールチップが即座に開き、それ以外の場合は200msのタイマーを開始します。show関数はウォーム状態をインスタントフラグにコピーし、CSSがデータ属性を介してエントリーアニメーションをスキップするために使用します。このパターンは、即時ポップアップと遅延の両方を避けることでユーザーエクスペリエンスを向上させます。これは、自分のコードベースに実装できる簡単なアプローチです。主要なエンティティ:企業:Front Prep。FAQ:ツールチップのウォームウィンドウパターンとは何ですか?ウォームウィンドウパターンは、ツールチップが開く前に200msの遅延を追加しますが、閉じた後は300msのクールダウンタイマーが開始されます。このクールダウン中に別のツールチップにホバーすると、即座に開き、近くの要素間を移動する際の繰り返しの遅延を回避します。
出典: Hacker News · 要約:HeadlinesBriefing