「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Popver API VS ダイアログ モーダル: 同じ同じだが異なる

Popver API VS ダイアログ モーダル: 同じ同じだが異なる

2024 年 11 月 7 日に公開
ブラウズ:820

Popver API VS dialog Modal : Same Same but Different

いくつかのテクノロジー ニュース ブログを読んでいたところ、「Popover API lands in Baseline」という見出しに遭遇しました。最近フロントエンド開発に取り組んでいる間、HTML での要素の使用に慣れるのに非常に苦労しており、混乱しました。ブログを見ていると、今までこの要素をどのように使用していたのか常に混乱していました。

TL;DR

を選択してください:

  • ユーザー フォーカスが必要なモーダル ポップアップ
  • アクセシビリティとキーボード操作

ポップオーバーを選択:

  • ライト解除による非モーダルポップアップ
  • 最小限のコードで簡単に実装

要素

MDN によると Dialog 要素

HTML 要素は、モーダルまたは非モーダルのダイアログ ボックス、または閉じることができるアラート、インスペクター、サブウィンドウなどの他の対話型コンポーネントを表します。

A は通常、Web サイトでユーザーの注意を重要なものに誘導する必要がある場合に使用され、コンテンツの上に表示されます。例: ニュースレターの購読、広告ブロッカーの無効化のリクエスト (強制)、または利用規約の同意。

モーダルとしての 要素

複数の Web サイトで何度も遭遇したことがあるかもしれませんが、これらのポップアップの一部は、背景をぼかしたり背景を無効にしたりして画面全体に描画され、ユーザーが目の前のタスクだけに集中するため、ユーザーは閉じる必要があります。 (許可されている場合のみ) ポップアップを表示するか、ポップアップを消すために必要な情報を入力します。この動作は「モーダルとしての要素」と呼ばれます。これらのモーダル要素は、ページの最上位レイヤーに表示されます。

//To open dialog as a modal.

dialog.showModal();

// To close the dialog.

dialog.close();
showModal() メソッドを使用して表示された

要素は、esc キーを使用して閉じることができます。キーボード ユーザーは、このような動作が維持されることを期待しており、ブラウザによって提供されます。複数のモーダル ダイアログが開いている場合、esc キーを使用して最後のダイアログのみが閉じます。

要素を非モーダルとして

Web ページを使用するユーザーの自然な流れを停止したり、他のすべての作業を停止して、表示したいものだけでなくコンテンツ (トースト通知、Cookie の同意、一般的なツールチップなど) に集中したりする必要があるとは限りません。情報。ユーザーが操作できる、または操作できない他のコンテンツの上、ページの最上位レイヤーに表示される必要があります。このような種類のポップアップは、非モーダル ポップアップと呼ばれます。ユーザーはこれらを手動で、または通常は時間をかけて閉じることができ、自然に消えます。これらの非モーダル ダイアログは引き続きページの最上位レイヤーに表示されますが、その優先順位は z-index を使用して制御でき、モーダル要素はこれよりも高い z-index を取得し、これにアクセスできなくなります。

//To open dialog as a modal.

dialog.show();

// To close the dialog.

dialog.close();

コード例

いくつかの問題

非モーダル要素の仕組みや使い方を理解するのに苦労しました。私によると、非モーダル要素の動作に一貫性がなく、次のような状況を処理するには Javascript コードが必要でした。

  • ライト解除機能はありません。モデルの外側をクリックしても .
  • は閉じません。
  • Esc キーは無視されず、そのシナリオを処理するには Javascript が必要です。
  • 最上位のレイヤーを描画したい場合は、z-index を手動で管理する必要があります。

驚いたことに、ポップオーバー API がこれらの問題などに回答または修正しました....

ポップオーバーAPI

popover は、任意の HTML 属性に追加できる属性です。以下に例を示します。


Popover content

ポップオーバーと 要素の主な違い

ポップオーバー要素と

要素の主な違いは、ポップオーバーが常に非モーダルであることです。 要素には role=dialog 属性が付属しており、この role 属性はさまざまな HTML 要素に付加され、特定の方法で動作します。つまり、h1 には見出しの役割があり、a にはアンカー/リンクの役割があります。この役割は、スクリーン リーダーなどの支援技術が要素を決定し、決定できるようにするために使用されます。ただし、ポップオーバーにはデフォルトの役割が割り当てられていないため、ポップオーバーは HTML 要素の属性です。これにより、ボタンがクリックされるまで、上の例の
が非表示になります。

ポップオーバー属性は最小限のコードで使用でき、JavaScript を使用して制御できますが、

のように常に必要なわけではありません。

ポップオーバーには 2 つの特性があります:
1.popover=auto: ライト解除の機能があり、JS インタラクションは必要ありません。
2.popover=manual: 明示的に閉じるには、ボタンやタイマーをクリックするなどの Javascript インタラクションが必要です。

ポップオーバーは常に最上位レイヤーに表示され、z-index を明示的に設定する必要はありません。

コード例:

Javascript コードをほとんど使わずに同じ動作を実現できることがわかります。さまざまなポップオーバーのデザインと管理がはるかに簡単になりました。

設計上の考慮事項

ポップオーバーには、CSSを使用して背景を設定できます。これは、ポップオーバーの背景をぼかしたりグレーアウトしたりするために使用できますが、ポップオーバーのライト解除機能を奪うことはなく、ポップオーバーの場合でもユーザーは外側をクリックできます。を起動して、Web ページの他の要素と対話します。

.

ではなくポップオーバーを選択するタイミングを決定するときは、十分に注意する必要があります。

ここで考慮すべき主な点は、現時点でフォーカスが必要なのは、表示されているコンポーネントだけかどうかということです。ユーザーは他のものと対話することを許可できますか?

結論

結論として、この要素とポップオーバー API は、Web アプリケーションでインタラクティブなポップアップを作成するための多彩なオプションを提供します。それらの独特の特性とユースケースを理解することで、情報に基づいた意思決定を行い、ユーザー エクスペリエンスを向上させ、開発プロセスを合理化できます。

参考文献

  1. Popover API と要素の比較
  2. ダイアログとポップオーバーは似ているように見えます。どう違うのですか?
  3. Popover API がベースラインに到達

リリースステートメント この記事は次の場所に転載されています: https://dev.to/decoders_lord/popver-api-vs-dialog-modal-same-same-but- Different-2ig7?1 侵害がある場合は、[email protected] までご連絡ください。それを削除するには
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3