Popover API
Die Popover-API bietet Entwicklern einen standardisierten, konsistenten und flexiblen Mechanismus, um Popover-Inhalte über anderen Seiteninhalten anzuzeigen. Popover-Inhalte können entweder deklarativ mit HTML-Attributen oder über JavaScript gesteuert werden.
Konzepte und Verwendung
Ein sehr verbreitetes Muster im Web ist es, Inhalte über anderen Inhalten anzuzeigen, um die Aufmerksamkeit des Benutzers auf bestimmte wichtige Informationen oder Aktionen zu lenken, die ausgeführt werden müssen. Diese Inhalte können verschiedene Namen haben – Overlays, Popups, Popovers, Dialoge usw. Wir werden sie in der Dokumentation als Popovers bezeichnen. Im Allgemeinen können diese sein:
- Modal, was bedeutet, dass, während ein Popover angezeigt wird, der Rest der Seite nicht interaktiv ist, bis das Popover auf irgendeine Weise bearbeitet wird (zum Beispiel wird eine wichtige Entscheidung getroffen).
- Nicht-modal, was bedeutet, dass der Rest der Seite interaktiv bleibt, während das Popover angezeigt wird.
Mit der Popover-API erstellte Popovers sind immer nicht-modal. Wenn Sie ein modales Popover erstellen möchten, ist ein <dialog>
-Element der richtige Weg. Es gibt erhebliche Überschneidungen zwischen den beiden – Sie könnten zum Beispiel ein Popover erstellen wollen, das bestehen bleibt, es aber mit deklarativem HTML steuern. Sie können ein <dialog>
-Element in ein Popover umwandeln (<dialog popover>
ist vollkommen gültig), wenn Sie die Steuerung eines Popovers mit den Semantiken eines Dialogs kombinieren möchten.
Typische Anwendungsfälle für die Popover-API sind benutzerinteraktive Elemente wie Aktionsmenüs, benutzerdefinierte "Toast"-Benachrichtigungen, Vorschläge für Formularelemente, Inhaltsauswähler oder lehrreiche Benutzeroberflächen.
Sie können Popovers auf zwei verschiedene Arten erstellen:
-
Deklarativ, über eine Reihe neuer HTML-Attribute. Ein einfaches Popover mit einem Umschaltknopf kann mit dem folgenden Code erstellt werden:
html<button popovertarget="mypopover">Toggle the popover</button> <div id="mypopover" popover>Popover content</div>
-
Über eine JavaScript-API. Zum Beispiel kann
HTMLElement.togglePopover()
verwendet werden, um ein Popover zwischen sichtbar und verborgen umzuschalten.
Es gibt auch neue Ereignisse, um auf das Umschalten eines Popovers zu reagieren, und CSS-Features, die bei der Gestaltung von Popovers helfen. Alle neuen Features sind unten aufgeführt.
Siehe Using the popover API für einen detaillierten Leitfaden zur Verwendung dieser API.
HTML-Attribute
popover
-
Ein globales Attribut, das ein Element in ein Popover-Element verwandelt; nimmt einen Popover-Zustand (
"auto"
,"hint"
oder"manual"
) als seinen Wert an. popovertarget
-
Verwandelt ein
<button>
oder<input>
-Element in einen Steuerungsknopf für ein Popover; nimmt die ID des zu steuernden Popover-Elements als Wert an. popovertargetaction
-
Gibt die auszuführende Aktion (
"hide"
,"show"
oder"toggle"
) auf dem vom Steuerungsknopf gesteuerten Popover-Element an.
CSS-Features
::backdrop
-
Das
::backdrop
Pseudo-Element ist ein vollflächiges Element, das direkt hinter Popover-Elementen platziert wird und es ermöglicht, Effekte auf die Seiteninhalte hinter dem/den Popover(s) anzuwenden, falls gewünscht (z.B. das Ausblenden). :popover-open
-
Die
:popover-open
Pseudo-Klasse stimmt mit einem Popover-Element nur überein, wenn es sich im sichtbaren Zustand befindet – es kann verwendet werden, um Popover-Elemente zu stylen, wenn sie angezeigt werden.
Schnittstellen
ToggleEvent
-
Stellt ein Ereignis dar, das den Benutzer benachrichtigt, wenn sich der Zustand eines Popover-Elements zwischen sichtbar und verborgen ändert. Es ist das Ereignisobjekt für die
beforetoggle
undtoggle
Ereignisse, die auf Popovers ausgelöst werden, wenn sich deren Zustand ändert.
Erweiterungen zu anderen Schnittstellen
Instanz-Eigenschaften
HTMLElement.popover
-
Ruft den Popover-Zustand eines Elements über JavaScript ab und setzt ihn (
"auto"
,"hint"
oder"manual"
) und kann zur Feature-Erkennung verwendet werden. Reflektiert den Wert des globalen HTML-Attributspopover
. -
Ruft das Popover-Element ab und setzt es, das durch den Steuerungsknopf kontrolliert wird. Das JavaScript-Äquivalent des HTML-Attributs
popovertarget
. -
Ruft die auszuführende Aktion ab und setzt sie (
"hide"
,"show"
oder"toggle"
) auf das vom Steuerungsknopf gesteuerte Popover-Element. Reflektiert den Wert des HTML-Attributspopovertargetaction
.
Instanz-Methoden
HTMLElement.hidePopover()
-
Versteckt ein Popover-Element, indem es aus der obersten Schicht entfernt und mit
display: none
gestylt wird. HTMLElement.showPopover()
-
Zeigt ein Popover-Element an, indem es zur obersten Schicht hinzugefügt wird.
HTMLElement.togglePopover()
-
Schaltet ein Popover-Element zwischen den sichtbaren und verborgenen Zuständen um.
Ereignisse
HTMLElement.beforetoggle
Ereignis-
Wird ausgelöst, kurz bevor sich der Zustand eines Popover-Elements zwischen sichtbar und verborgen ändert oder umgekehrt. Kann verwendet werden, um zu verhindern, dass ein Popover sich öffnet, oder um andere Elemente zu aktualisieren, die durch den Popover-Zustand ausgelöst werden müssen.
HTMLElement.toggle
Ereignis-
Wird ausgelöst, kurz nachdem sich der Zustand eines Popover-Elements zwischen sichtbar und verborgen ändert oder umgekehrt.
Beispiele
Besuchen Sie unsere Popover-API-Beispiele-Seite, um auf die gesamte Sammlung von MDN Popover-Beispielen zuzugreifen.
Spezifikationen
Specification |
---|
HTML # dom-popover |
HTML # event-beforetoggle |
HTML # event-toggle |
Browser-Kompatibilität
api.HTMLElement.popover
api.HTMLElement.beforetoggle_event.popover_elements
api.HTMLElement.toggle_event.popover_elements
Siehe auch
popover
globales HTML-Attributpopovertarget
HTML-Attributpopovertargetaction
HTML-Attribut::backdrop
CSS-Pseudo-Element:popover-open
CSS-Pseudo-Klasse