HTML Popover API:ライブプレイグラウンドとリファレンス

HTML Popover APIプレイグラウンド

HTML Popover API:popovertarget、showPopover、イベント | We.Inc

Popover APIをその場で試せます。auto、manual、hintのポップオーバー、popovertargetボタン、showPopover、hidePopover、togglePopoverに加え、beforetoggleとtoggleイベントのログも表示します。

任意の要素にpopover属性を付け、ボタンからpopovertarget="id"で指定するだけで、開閉、トップレイヤー、Escapeキーの処理をJavaScriptなしでブラウザーが行ってくれます。スクリプトではshowPopover()、hidePopover()、togglePopover()を呼び出し、beforetoggleとtoggleのイベントを監視します。popover="auto"は外側をクリックすると閉じますが、manualは閉じません。

ポップオーバーの種類

かつてポップオーバーといえば、位置決めライブラリ、外側クリックのハンドラー、z-indexとの格闘を意味していました。Popover APIは、そのすべてをHTMLに移します。下のプレイグラウンドはブラウザー内に本物のポップオーバーを作るので、種類を切り替えたり、コードから操作したり、イベントが発生する順序を観察したりできます。

よくある質問

Popover APIに対応しているブラウザーは?

MDNでは、Popover APIは2025年1月からBaseline(新たに利用可能)とされており、主要ブラウザーの最新版で動作します。hint値のような新しい部分は対応範囲が狭い場合があるので、頼る前に互換性の表を確認してください。

autoとmanualのポップオーバーの違いは何ですか?

autoのポップオーバーはライトディスミスに対応しています。外側をクリックするかEscapeを押すと閉じ、開くとほかのautoポップオーバーが閉じます。manualのポップオーバーはボタンかスクリプトで閉じるまで開いたままで、複数を同時に開けるため、トースト通知に向いています。

Escapeですべてのポップオーバーが閉じますか?

Escapeで閉じるのはautoとhintのポップオーバーで、外側のクリックで閉じるものと同じです。manualのポップオーバーはどちらも無視するので、専用の閉じるボタンかhidePopover()の呼び出しが必要です。

ポップオーバーが開いたり閉じたりしたことを知るには?

ポップオーバー要素でtoggleイベントを監視します。newStateは"open"か"closed"です。beforetoggleイベントは変化の直前に発生するので、コンテンツの準備に使えます。

ポップオーバーはデフォルトでどこに表示されますか?

トップレイヤーで、fixedの位置指定によりviewportの中央に表示されます。位置は独自のCSSで、またはブラウザーが対応していればアンカー配置で移動できます。

まずは宣言的に

メニュー、トースト、ヒント

Popover APIリファレンス

属性、メソッド、イベント、セレクター

JavaScriptを使わないポップオーバーの例

これらのフレームはスクリプトをオフにして動いていますが、動作がHTMLから来ているため、ポップオーバーは機能します。

autoポップオーバーのメニュー

ボタンをクリックし、次にほかの場所をクリックするかEscapeを押してください。メニューが自動で閉じます。

表示ボタンと非表示ボタンを分けたmanualのトースト

ここでは外側をクリックしても何も起きません。閉じるのは非表示ボタンだけです。

ポップオーバーの背後のページを暗くする

::backdropはポップオーバーの下のレイヤーにスタイルを付けます。それでもモーダルではなく、背後のページをクリックすると閉じます。

JavaScriptからポップオーバーを操作する

メソッド、イベント、機能検出

メソッドを呼び出す前に対応状況を確認し、toggleイベントでnewStateを読み取ります。

ポップオーバープレイグラウンド

ここではブラウザーが本物のポップオーバーを動かしています。種類を切り替え、メソッドを呼び出し、イベントログを確認しましょう。

宣言的なボタン(popovertarget)

スクリプトのメソッド

これは{v}ポップオーバーです。外側をクリックするかEscapeを押して、ライトディスミスを試してください。

閉じる

状態:{v}

イベントログ

ログを消去

まだイベントはありません。

このブラウザーはPopover APIに対応していないため、プレイグラウンドはオフになっています。

エラー:{v}

無料で始める · クレジットカード不要

関連: ガイド|Webマーケティングと集客を学ぶ

製品

ご利用いただける方

機能

リソース

会社情報

サイトマップを見る