Cet exemple montre une utilisation simple de l'API Popover avec la valeur toggle
pour la propriété popoverTargetAction
. L'attribut popover
est défini sur "auto"
, de sorte que le popover peut être fermé en cliquant en dehors de la zone du popover (light-dismissed).
Tout d'abord, nous définissons un élément HTML <button>
que nous utiliserons pour afficher et masquer le popover, et un <div>
qui sera le popover. Dans ce cas, nous ne définissons pas l'attribut popovertargetaction
sur le <button>
ou l'attribut popover
sur le <div>
, car nous le ferons de manière programmatique.
<input id="toggleBtn" type="button" value="Afficher/masquer le popover" />
<div id="mypopover">Ceci est le contenu du popover !</div>
JavaScript
Le code JavaScript récupère d'abord une référence vers les éléments <div>
et <input>
. Il définit ensuite une fonction pour vérifier la prise en charge du popover.
const popover = document.getElementById("mypopover");
const toggleBtn = document.getElementById("toggleBtn");
// Vérifie la prise en charge de l'API Popover.
function supportsPopover() {
return HTMLElement.prototype.hasOwnProperty("popover");
}
Si l'API Popover est prise en charge, le code définit l'attribut popover
de l'élément <div>
sur "auto"
et en fait la cible du popover du bouton de basculement. Nous définissons ensuite la popoverTargetAction
du <button>
sur "toggle"
.
Si l'API Popover n'est pas prise en charge, nous changeons le contenu textuel de l'élément <div>
pour indiquer cela, et masquons le bouton de basculement.
if (supportsPopover()) {
// Définit l'élément <div> comme étant un popover automatique
popover.popover = "auto";
// Définit le bouton comme étant le contrôle du popover
toggleBtn.popoverTargetElement = popover;
// Définit que le bouton peut afficher/masquer le popover
toggleBtn.popoverTargetAction = "toggle";
} else {
popover.textContent = "L'API Popover n'est pas prise en charge.";
toggleBtn.hidden = true;
}
Note : Un élément popover est masqué par défaut, mais si l'API n'est pas prise en charge, il s'affichera de façon classique.
RésultatVous pouvez essayer l'exemple ci-après. Affichez et masquez le popover en activant le bouton. Un tel popover automatique peut également être fermé en cliquant en dehors des limites de sa zone.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4