【ポップオーバーエーピーアイ】

Popover API とは?

💡 「飛び出す要素」の管理をブラウザに丸投げできるHTML新機能
📌 このページのポイント
ひよこ ひよこ

Popover APIって何が新しいの?

ペンギン先生 ペンギン先生

今まで「ボタンを押したらメニューが出る」UIJavaScriptで作っていたのが、HTML属性だけで実現できるようになったんだよ。ブラウザが開閉・位置・z-indexを全部面倒見てくれるんだね。

ひよこ ひよこ

どう書けばいいの?

ペンギン先生 ペンギン先生

ボタンに`popovertarget="メニューのid"`、メニュー要素に`popover`属性を付けるだけだよ。それだけでボタンクリックでメニューが表示・非表示されるんだね。

ひよこ ひよこ

dialogタグと何が違うの?

ペンギン先生 ペンギン先生

dialogはモーダル(背面を操作不可にする)が主目的なんだ。Popover APIモーダルでなく、メニューやツールチップのような「軽い」オーバーレイ向けで、画面外をクリックすると自動で閉じるんだよ。

ひよこ ひよこ

z-indexって今まで何が問題だったの?

ペンギン先生 ペンギン先生

複数のポップアップが重なったとき、どれが前面に来るかをz-indexで管理するのがとても大変だったんだ。Popover APIはトップレイヤーという特別な場所に自動で表示されるから、z-index競合が起きないんだよ。

ひよこ ひよこ

全部のブラウザで使えるの?

ペンギン先生 ペンギン先生

2024年にはChrome・Firefox・Safari・Edgeすべてで標準サポートされたんだよ。JavaScriptライブラリが担っていた仕事をブラウザネイティブで置き換えられる、Webプラットフォームの進化のいい例だね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Popover API」って出てきたら「JavaScriptなしでポップアップUIを実現するHTML標準機能」と思えばだいたいOK!
📖 おまけ:英語の意味
「Popover API」 = ポップオーバーAPI
💬 "popover"は「飛び出す」の意。ダイアログとは異なりモーダルでないUI要素を表示するためのHTML標準仕様だよ。
← 用語集にもどる