popover - ポップオーバー

トップ > HTMLリファレンス > popover

属性

<タグ名 popover> - ポップオーバー

サポート状況

Chrome, Edge, Safari で使用可能です。Firefox でもサポート予定です。

説明

popover を指定したコンテンツをポップオーバーとして表示します。ポップオーバーは次のような動作となります。

基本的なサンプル

下記に簡単なサンプルを示します。

CSS
*:popover-open {
  padding: 1rem;
  border: 1px solid #ccc;
  box-shadow: 5px 5px 10px 0px #999;
  text-align: center;
}
*::backdrop {
  background-color: rgba(0, 0, 0, 0.3);
}
HTML
<button popovertarget="pop1">Pop</button>
<dialog id="pop1" popover>
  This is a sample dialog.
</dialog>
表示
This is a sample dialog.
popovertargetaction="toggle", "show", "hide"

popovertargetaction には "toggle", "show" または "hide" を指定することができます。何も指定しない場合は "toggle" となり、ボタンを押すたびにポップオーバーの表示と非表示をトグルします。"show" はポップオーバーを表示します。"hide" はポップオーバーを閉じます。

HTML
<button popovertarget="pop3" popovertargetaction="show">Pop</button>
<dialog id="pop3" popover>
  This is a sample dialog.<br><br>
  <button popovertarget="pop3" popovertargetaction="hide">Close</button>
</dialog>
表示
This is a sample dialog.

popover="manual"

popover 属性には "auto" または "manual" を指定することができます。何も指定しない場合は "auto" と見なされます。"manual" を指定すると下記の動作が変わります。

下記にサンプルを示します。[Pop] ボタンをもう一度押すことでポップオーバーを閉じることができます。

HTML
<button popovertarget="pop2">Pop</button>
<dialog id="pop2" popover="manual">
  This is a sample dialog.
</dialog>
表示
This is a sample dialog.
showPopover(), hidePopover()

JavaScript の showPopover(), hidePopover() でポップオーバーを制御することもできます。inert 属性を制御することで、popover="manual" の場合でもポップオーバー以外のコンテンツを非活性化することができます。

HTML
<div id="main">
  <button id="btn-open">Pop</button>
</div>
<dialog id="pop4" popover="manual">
  This is a sample dialog.<br><br>
  <button id="btn-close">Close</button>
</dialog>
<script>
document.getElementById("btn-open").addEventListener("click", () => {
  document.getElementById("main").inert = true;
  document.getElementById("pop4").showPopover();
});
document.getElementById("btn-close").addEventListener("click", () => {
  document.getElementById("main").inert = false;
  document.getElementById("pop4").hidePopover();
});
</script>
HTML

Copyright (C) 2023 杜甫々
初版:2023年7月16日 最終更新:2023年7月16日
http://www.tohoho-web.com/html/attr/is.htm
This is a sample dialog.