Popover API
Die Popover-API bietet Entwicklern einen standardisierten, konsistenten und flexiblen Mechanismus zur Anzeige von Popover-Inhalten über anderen Seiteninhalten. Popover-Inhalte können entweder über HTML-Attribute oder über JavaScript gesteuert werden.
Konzepte und Verwendung
Ein sehr häufiges Muster im Web ist es, Inhalte über anderen Inhalten anzuzeigen, um die Aufmerksamkeit des Benutzers auf bestimmte wichtige Informationen oder Aktionen zu lenken, die ergriffen werden müssen. Diese Inhalte können verschiedene Namen annehmen - Overlays, Popups, Popovers, Dialoge usw. In der Dokumentation werden wir sie als Popovers bezeichnen. Allgemein gesprochen, können diese:
- modal sein, was bedeutet, dass während ein Popover angezeigt wird, der Rest der Seite nicht interaktiv ist, bis das Popover in irgendeiner Weise bearbeitet wird (zum Beispiel wird eine wichtige Entscheidung getroffen).
- nicht-modal sein, was bedeutet, dass der Rest der Seite interaktiv bleibt, während das Popover gezeigt 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önnen beispielsweise ein Popover erstellen, das bestehen bleibt, es jedoch mit HTML steuern. Sie können ein <dialog>-Element in ein Popover verwandeln (<dialog popover> ist völlig gültig), wenn Sie die Popover-Steuerung mit Dialog-Semantik kombinieren möchten.
Typische Anwendungsfälle für die Popover-API umfassen benutzerinteraktive Elemente wie Aktionsmenüs, benutzerdefinierte "Toast"-Benachrichtigungen, Formularelementvorschläge, Inhaltswähler oder Lehr-UI.
Sie können Popovers auf verschiedene Weise erstellen:
-
Über einen Satz 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 angezeigt und versteckt umzuschalten.
Die Popover-API bietet auch Ereignisse, um auf das Umschalten eines Popovers zu reagieren, sowie CSS-Features zur Unterstützung bei der Gestaltung von Popovers. Siehe Verwendung der Popover-API für einen detaillierten Leitfaden zur API.
Eine verwandte Funktion — Interest Invokers — kann verwendet werden, um Popovers bei Hover/Fokus ohne JavaScript-Anforderungen anzuzeigen. Sehen Sie sich Verwendung von Interest Invokers an, um mehr zu erfahren.
HTML-Attribute
interestforExperimentell-
Definiert ein HTML
<a>,<button>oder<area>-Element oder ein SVG<a>-Element, als einen Interest Invoker. Sein Wert ist dieiddes Ziel-Elements, das in irgendeiner Weise beeinflusst wird (normalerweise angezeigt oder versteckt), wenn Interesse auf dem Invoker-Element gezeigt oder verloren wird. popover-
Ein globales Attribut, das ein Element in ein Popover-Element verwandelt; nimmt einen Popover-Status (
"auto","hint"oder"manual") als Wert an. popovertarget-
Verwandelt ein
<button>oder<input>-Element in einen Popover-Steuerknopf; nimmt die ID des zu steuernden Popover-Elements als Wert an. popovertargetaction-
Gibt die Aktion an, die auf das vom Steuerknopf gesteuerte Popover-Element ausgeführt werden soll (
"hide","show"oder"toggle").
CSS-Features
::backdrop-
Das
::backdropPseudo-Element ist ein Vollbild-Element, das direkt hinter den Popover-Elementen platziert wird und ermöglicht, Effekte auf den Seiteninhalt hinter dem/den Popover(s) anzuwenden (zum Beispiel es verschwommen darzustellen). interest-delay,interest-delay-start, undinterest-delay-endExperimentell-
Die Kurzform-Eigenschaft
interest-delayund ihre zugehörigen Langformeninterest-delay-startundinterest-delay-endkönnen verwendet werden, um eine Verzögerung zwischen dem Zeigen oder Verlieren des Interesses des Benutzers und dem Reagieren des Browsers auf diese Änderung hinzuzufügen. :interest-sourceund:interest-target-
Diese Selektoren können verwendet werden, um Stile nur dann auf den Interest Invoker und sein zugeordnetes Ziel-Element anzuwenden, wenn Interesse gezeigt wird.
:popover-open-
Die
:popover-openPseudo-Klasse passt auf ein Popover-Element nur dann, wenn es im Anzeigestatus ist — sie kann verwendet werden, um Popover-Elemente zu gestalten, wenn sie angezeigt werden.
Schnittstellen
InterestEventExperimentell-
Das Ereignisobjekt für die
interestundloseinterestEreignisse. Dies enthält einesource-Eigenschaft, die eine Referenz auf das zugeordnete Interest Invoker-Element enthält. ToggleEvent-
Repräsentiert ein Ereignis, das ausgelöst wird, wenn ein Popover-Element zwischen angezeigt und versteckt umgeschaltet wird. Es ist das Ereignisobjekt für die
beforetoggleundtoggleEreignisse, die auf Popovers ausgelöst werden, wenn sich ihr Status ändert.
Erweiterungen auf andere Schnittstellen
>Instanzeigenschaften
interestForElementExperimentell-
Ruft eine Referenz auf das von einem Interest Invoker anvisierte Element ab oder legt sie fest. Wenn ein HTML- oder SVG-Interest Invoker auf ein Zielelement in seinem
interestforAttribut verweist, wird dieses Element in der entsprechenden DOM-ObjektinterestForElement-Eigenschaft referenziert. Verfügbar in den SchnittstellenHTMLButtonElement,HTMLAnchorElement,HTMLAreaElementundSVGAElement. HTMLElement.popover-
Ruft den Popover-Status eines Elements über JavaScript ab oder legt ihn fest (
"auto","hint"oder"manual") und kann zur Feature-Erkennung verwendet werden. Spiegelt den Wert des globalen HTML-Attributspopoverwider. -
Ruft das vom Steuerknopf gesteuerte Popover-Element ab oder legt es fest. Das JavaScript-Äquivalent des HTML-Attributs
popovertarget. -
Ruft die Aktion ab oder legt sie fest (
"hide","show"oder"toggle"), die auf das vom Steuerknopf gesteuerte Popover-Element ausgeführt werden soll. Spiegelt den Wert des HTML-Attributspopovertargetactionwider.
Instanzmethoden
HTMLElement.hidePopover()-
Versteckt ein Popover-Element, indem es aus der obersten Ebene entfernt und mit
display: nonegestaltet wird. HTMLElement.showPopover()-
Zeigt ein Popover-Element an, indem es zur obersten Ebene hinzugefügt wird.
HTMLElement.togglePopover()-
Schaltet ein Popover-Element zwischen den Zuständen "angezeigt" und "versteckt" um.
Ereignisse
beforetoggle-Ereignis-
Wird ausgelöst, kurz bevor sich der Status eines Popover-Elements von angezeigt zu versteckt ändert oder umgekehrt. Kann verwendet werden, um zu verhindern, dass sich ein Popover öffnet, oder um andere Elemente zu aktualisieren, die durch den Popover-Status ausgelöst werden müssen.
toggle-Ereignis-
Wird ausgelöst, kurz nachdem sich der Status eines Popover-Elements von angezeigt zu versteckt oder umgekehrt ändert.
interestExperimentell-
Wird am Ziel-Element eines Interest Invokers ausgelöst, wenn Interesse gezeigt wird, sodass Code als Reaktion ausgeführt werden kann.
loseinterestExperimentell-
Wird am Ziel-Element eines Interest Invokers ausgelöst, wenn Interesse verloren geht, sodass Code als Reaktion ausgeführt werden kann.
Beispiele
- Sehen Sie sich unsere Sammlung von Popover-API-Beispielen an.
- Sehen Sie sich unsere Sammlung von Interest-Invoker-Beispielen an.
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
popoverHTML globales AttributpopovertargetHTML-AttributpopovertargetactionHTML-Attribut::backdropCSS-Pseudo-Element:popover-openCSS-Pseudo-Klasse