国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ ウェブフロントエンド jsチュートリアル フローティング UI でツールチップを作成する方法

フローティング UI でツールチップを作成する方法

Nov 17, 2024 pm 10:21 PM

How To Create A Tooltip With Floating UI

ソフトウェア開発では、通常、ソフトウェアを構(gòu)築する際に優(yōu)れたユーザー エクスペリエンスを考慮することが最も重要なことの 1 つです。ソフトウェア アプリケーションの使用方法をユーザーに推測させる必要はありません。これはアプリケーションの使いやすさに影響を與える可能性があり、望んでいることではありません。

ほとんどのユーザーはせっかちで、アプリがどのように動作するかを探索して確認するほど忍耐力がないかもしれませんが、ツールチップを使用すると、ツアー ガイドのようにアプリケーションを簡単に案內(nèi)できます。

今日は、フローティング UI を使用してツールチップを簡単に作成する方法について説明します。

ツールチップ

ツールチップは、ユーザーが要素の上にマウスを移動したり、要素をクリックしたり、フォーカスしたりすると表示される、小さいですが有益なポップアップです。一部のツールチップでは、ユーザーがトリガーする必要がない場合があります。代わりに、ユーザーが初めてアプリケーションにアクセスするときのガイドとして機能し、コンテキストと手順を自動的に提供します。

フローティング UI

フローティング UI は、畫面サイズに基づいて位置を簡単に調(diào)整できる素晴らしいツールチップを作成できる素晴らしいライブラリです。応答性について心配する必要はありません。フローティング UI が自動的に処理します。

効率的なツールチップの作成には時間がかかり、退屈に感じるかもしれない手順がいくつか含まれるため、フローティング UI などのライブラリを使用する必要があります。

この記事を理解するために必要な前提條件

  1. React js の基礎(chǔ)知識
  2. JavaScript の基本的な理解
  3. (React アプリケーションを?qū)g行するには) コンピューターに Node js がインストールされている必要があります
  4. そして最後に、Google Chrome のような Web ブラウザです。

フローティング UI をインストールしましょう

React js アプリケーションに Floating UI をインストールする必要があります。このコマンドを?qū)g行することでそれを行うことができます。

npm install @floating-ui/react

フローティング UI ライブラリから多くの関數(shù)をインポートする必要があります。これらの関數(shù)を使用すると、ツールチップを簡単に作成できます。

`
インポート {
使用クリック、
useFloating、
useInteractions、
フリップ、
オフセット、
useDismiss、
} '@floating-ui/react' から;

`

デストラクチャ useFloating

`
const {
參照: カレンダー1參照、
floatStyles: Calendar1FloatingStyles,
コンテキスト: カレンダー1コンテキスト、
} = useFloating({
開く: isOpen1,
onOpenChange: setIsOpen1,
配置: 'ボトムエンド'、
ミドルウェア: [
フリップ({
fallbackPlacements: ['right']、
})、

offset({ mainAxis: 20,crossAxis: 70 }),
]、
});
`

參照

これにより、ツールチップをその參照に簡単に接続できるようになります。リファレンスは次のようになります。

<i
      className="fa-light fa-calendar cursor-pointer text-gray-500"
            ref={calendar1Refs.setReference}
           ></i>

ツールチップは次のようになります。

{isOpen1 && (
            <div
             className="absolute z-10 bg-white"
             ref={calendar1Refs.setFloating}

            >
             <Calendar onChange={handleSelectDate1} />
            </div>
           )}The difference here is that our tooltip reference has “setReference” while our tooltip has “setFloating”. This will enable them to be connect, making sure that the tooltip floats around it`s reference.

フローティングスタイル

FloatingStyles は、參照要素に対するフローティング要素 (ツールヒントなど) の正確な位置と寸法を決定する CSS スタイルを含むオブジェクトです。

{isOpen2 && (
          <div
           className="z-[9999]"
           ref={calendar1Refs.setFloating}
          >



<p><strong>Context</strong></p>

<p>In Floating UI, context (like calendar1Context in this case) provides a way to manage and share state and interactions across multiple hooks. This helps us to share events like click, hover etc. It also helps to dismiss the interactions seamlessly, ensuring that each tooltip or floating element behaves consistently.<br>
</p>

<pre class="brush:php;toolbar:false">const click1 = useClick(calendar1Context);
 const dismissCalendar1ToolTip = useDismiss(calendar1Context);

開く

開いたプロップは、ツールチップの可視性にとって非常に重要です。これは、コンポーネントの內(nèi)部狀態(tài)に基づいてツールチップの表示/非表示を管理するのに役立ちます。

まず、デフォルト値 false で useState を作成し、ユーザーがツールチップをクリックするまでツールチップを非表示にできるようにします。この useState は、ツールチップが現(xiàn)在開いているかどうかを追跡します。

const [isOpen, setIsOpen] = useState(false);

onOpenChange

このコールバックは、setIsOpen 値を更新するのに役立ちます。したがって、ユーザーがクリックするかイベントをトリガーするたびに、isOpen の false 値を true に設(shè)定し、その逆も同様です。

配置

これは、參照に関連してツールチップをどこに配置するかを決定するのに役立ちます。ツールチップをこれらの位置のいずれかに配置することを決定できます。

  1. ボトムエンド
  2. ボトムスタート
  3. 左端
  4. 左スタート
  5. そうです
  6. 右端
  7. 右スタート
  8. トップ
  9. トップエンド
  10. トップスタート

反転

指定された方向に十分なスペースがない場合、ミドルウェア配列內(nèi)のフリップミドルウェアは、浮動要素の位置を自動的に調(diào)整します。ここで、下に十分なスペースがない場合は、フォールバック配置 (['bottom-end']) を使用して配置しようとします??栅攻讴`スに応じて好きな位置を選択できます。

middleware: [
   flip({
    fallbackPlacements: ['bottom-end'],
   }),

    ],

オフセット

このミドルウェアは、參照と浮動要素の間にスペースを作成します。 mainAxis: 20 は主方向 (この場合は基準の下) に 20 ピクセルのギャップを作成し、crossAxis: 50 は垂直軸に沿って 50 ピクセルのオフセットを作成します。

middleware: [
   offset({ mainAxis: 20, crossAxis: 50 }),
  ],

構(gòu)成は次のようになります

const [isOpen, setIsOpen] = useState(false);
 const {
  refs: calendar1Refs,
  floatingStyles: calendar1FloatingStyles,
  context: calendar1Context,
 } = useFloating({
  open: isOpen,
  onOpenChange: setIsOpen,
  placement: 'bottom-end',

  middleware: [
   flip({
    fallbackPlacements: ['bottom-end'],
   }),

   offset({ mainAxis: 20, crossAxis: 50 }),
  ],
 });

 const click = useClick(calendar1Context);
 const dismissImageToolTip = useDismiss(calendar1Context);

 const {
  getReferenceProps: calendar1TooltipReference,
  getFloatingProps: calendar1TooltipFloatingProps,
 } = useInteractions([click, dismissImageToolTip]);

デモ

このリンクをクリックしてデモビデオをご覧ください。

ビデオから、ツールチップを含めるのに十分なスペースがない場合、ツールチップがその位置を調(diào)整することがはっきりとわかります。定義した fallbackPlacements の位置を使用します。

結(jié)論

フローティング UI は、React アプリケーションにツールチップを?qū)g裝する強力かつ柔軟な方法を提供します。自動配置と豊富なカスタマイズ オプションにより、さまざまなデバイスや畫面サイズにわたって信頼性の高い機能を維持しながら、アプリケーションのユーザー エクスペリエンスを向上させるツールチップを作成できます。

これには、次のような非常に多くの関數(shù)とオブジェクトが含まれます。 refs、floatingStyles、context、狀態(tài)管理用の useState、onOpenChange、配置、反転、オフセット。

このガイドに従うことで、React アプリケーションに応答性の高いユーザーフレンドリーなツールチップを?qū)g裝するための知識が得られます。さまざまな構(gòu)成とミドルウェアを試して、ユーザーにとって完璧なツールチップ エクスペリエンスを作成してください。

コーディングは楽しいですか?

以上がフローティング UI でツールチップを作成する方法の詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java vs. JavaScript:混亂を解消します Java vs. JavaScript:混亂を解消します Jun 20, 2025 am 12:27 AM

JavaとJavaScriptは異なるプログラミング言語であり、それぞれ異なるアプリケーションシナリオに適しています。 Javaは大規(guī)模なエンタープライズおよびモバイルアプリケーション開発に使用されますが、JavaScriptは主にWebページ開発に使用されます。

JavaScriptコメント:短い説明 JavaScriptコメント:短い説明 Jun 19, 2025 am 12:40 AM

JavaScriptcommentsEareEssentialential-formaining、およびGuidingCodeexecution.1)single-linecommentseared forquickexplanations.2)多LinecommentsexplaincomplexlogiCorprovidededocumentation.3)clarifyspartsofcode.bestpractic

JSで日付と時間を操作する方法は? JSで日付と時間を操作する方法は? Jul 01, 2025 am 01:27 AM

JavaScriptで日付と時間を処理する場合は、次の點に注意する必要があります。1。日付オブジェクトを作成するには多くの方法があります。 ISO形式の文字列を使用して、互換性を確保することをお勧めします。 2。時間情報を取得および設(shè)定して、メソッドを設(shè)定でき、月は0から始まることに注意してください。 3.手動でのフォーマット日付には文字列が必要であり、サードパーティライブラリも使用できます。 4.ルクソンなどのタイムゾーンをサポートするライブラリを使用することをお勧めします。これらの重要なポイントを習得すると、一般的な間違いを効果的に回避できます。

なぜの下部にタグを配置する必要があるのですか? なぜの下部にタグを配置する必要があるのですか? Jul 02, 2025 am 01:22 AM

PLACSTHETTHETTHE BOTTOMOFABLOGPOSTORWEBPAGESERVESPAGESPORCICALPURPOSESESFORSEO、userexperience、andDesign.1.IthelpswithiobyAllowingseNStoAccessKeysword-relevanttagwithtagwithtagwithtagwithemaincontent.2.iTimrovesexperiencebyepingepintepepinedeeping

JavaScript vs. Java:開発者向けの包括的な比較 JavaScript vs. Java:開発者向けの包括的な比較 Jun 20, 2025 am 12:21 AM

javascriptispreferredforwebdevelopment、whilejavaisbetterforlge-scalebackendsystemsandroidapps.1)javascriptexcelsininintingtivewebexperiences withitsdynAmicnature anddommanipulation.2)javaofferstruntypyping-dobject-reientedpeatures

DOMでのイベントの泡立ちとキャプチャとは何ですか? DOMでのイベントの泡立ちとキャプチャとは何ですか? Jul 02, 2025 am 01:19 AM

イベントキャプチャとバブルは、DOMのイベント伝播の2つの段階です。キャプチャは最上層からターゲット要素までであり、バブルはターゲット要素から上層までです。 1.イベントキャプチャは、AddEventListenerのUseCaptureパラメーターをTrueに設(shè)定することにより実裝されます。 2。イベントバブルはデフォルトの動作であり、UseCaptureはfalseに設(shè)定されているか、省略されます。 3。イベントの伝播を使用して、イベントの伝播を防ぐことができます。 4.イベントバブルは、動的なコンテンツ処理効率を改善するためにイベント委任をサポートします。 5.キャプチャを使用して、ロギングやエラー処理など、事前にイベントを傍受できます。これらの2つのフェーズを理解することは、タイミングとJavaScriptがユーザー操作にどのように反応するかを正確に制御するのに役立ちます。

JavaScript:効率的なコーディングのためのデータ型の調(diào)査 JavaScript:効率的なコーディングのためのデータ型の調(diào)査 Jun 20, 2025 am 12:46 AM

javascripthassevenfundamentaldatypes:number、string、boolean、undefined、null、object、andsymbol.1)numberseadouble-precisionformat、有用であるため、有用性の高いものであるため、but-for-loating-pointarithmetic.2)ストリングリムムット、使用率が有用であること

JavaScriptアプリケーションのペイロードサイズをどのように削減できますか? JavaScriptアプリケーションのペイロードサイズをどのように削減できますか? Jun 26, 2025 am 12:54 AM

JavaScriptアプリケーションがゆっくりとロードされ、パフォーマンスが低い場合、問題はペイロードが大きすぎることです。ソリューションには、次のものが含まれます。1。コード分割(コードスプリッティング)を使用し、React.lazy()またはビルドツールを介して大きなバンドルを複數(shù)の小さなファイルに分割し、最初のダウンロードを減らすために必要に応じてロードします。 2。未使用のコード(Treeshaking)を削除し、ES6モジュールメカニズムを使用して「デッドコード」をクリアして、導入されたライブラリがこの機能をサポートしていることを確認します。 3.リソースファイルを圧縮してマージし、GZIP/BrotliとTerserがJSを圧縮できるようにし、ファイルを合理的にマージし、靜的リソースを最適化します。 4.頑丈な依存関係を交換し、day.jsやフェッチなどの軽量ライブラリを選択します

See all articles