Element : méthode checkVisibility()
Baseline
2024
Nouvellement disponible
Depuis March 2024, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.
La méthode checkVisibility() de l'interface Element vérifie si l'élément est potentiellement visible.
La méthode retourne false dans l'un des cas suivants :
- L'élément n'a pas de boîte associée, par exemple parce que la propriété CSS
displayest définie surnoneoucontents. - L'élément n'est pas rendu parce que l'élément ou un élément ancêtre définit la propriété
content-visibilitysurhidden.
Le paramètre optionnel permet d'effectuer des vérifications supplémentaires pour tester d'autres interprétations de ce que signifie « visible ».
Par exemple, vous pouvez vérifier si un élément a une opacité de 0, si la valeur de la propriété visibility de l'élément le rend invisible, ou si la propriété content-visibility de l'élément a une valeur de auto et que son rendu est actuellement ignoré.
Notez qu'une valeur de retour de true ne garantit pas que l'élément est visible pour l'utilisateur·ice, seulement qu'il peut l'être.
Les éléments en dehors de la zone d'affichage ou occultés par d'autres contenus peuvent toujours renvoyer true.
Syntaxe
checkVisibility(options)
Paramètres
optionsFacultatif-
Un objet indiquant les vérifications supplémentaires à effectuer. Les options possibles sont :
contentVisibilityAuto-
truepour vérifier si la propriétécontent-visibilityde l'élément a (ou hérite) la valeurauto, et que son rendu est actuellement ignoré.falsepar défaut. opacityProperty-
truepour vérifier si la propriétéopacityde l'élément a (ou hérite) une valeur de0.falsepar défaut. visibilityProperty-
truepour vérifier si l'élément est invisible en raison de la valeur de sa propriétévisibility.falsepar défaut.Note : Les éléments invisibles incluent ceux qui ont
visibility: hidden, et certains types d'éléments qui ontvisibility: collapse. checkOpacity-
Un alias historique pour
opacityProperty. checkVisibilityCSS-
Un alias historique pour
visibilityProperty.
Valeur de retour
false si l'une des conditions suivantes est remplie, sinon true :
- L'élément n'est associé à aucune boîte.
- La propriété
content-visibilityde l'élément a (ou hérite) une valeur dehidden. opacityProperty(oucheckOpacity) vauttrueet la propriétéopacityde l'élément a (ou hérite) une valeur de0.visibilityProperty(oucheckVisibilityCSS) vauttrueet l'élément est invisible en raison de la valeur de sa propriétévisibility.contentVisibilityAutovauttrue, la propriétécontent-visibilitya (ou hérite) une valeur deauto, et le rendu de l'élément est ignoré.
Exemples
>Tester checkVisibility() avec du CSS varié
L'exemple suivant vous permet de tester comment le résultat de checkVisibility() peut varier en fonction de différentes valeurs des propriétés CSS display, content-visibility, visibility et opacity.
HTML
Le code HTML définit des éléments <select> pour les propriétés CSS qui influencent les résultats de checkVisibility().
Les premières valeurs (sélectionnées par défaut) font que checkVisibility() retourne true lorsqu'elles sont appliquées à un élément, tandis que les autres valeurs modifient la visibilité.
<select id="css_affichage" name="css_affichage">
<option value="block" selected>display: block</option>
<option value="none">display: none</option>
<option value="contents">display: contents</option>
</select>
<select id="css_visibilite_contenu" name="css_visibilite_contenu">
<option value="visible" selected>content-visibility: visible</option>
<option value="hidden">content-visibility: hidden</option>
<option value="auto">content-visibility: auto</option>
</select>
<select id="css_opacite" name="css_opacite">
<option value="1" selected>opacity: 1</option>
<option value="0">opacity: 0</option>
</select>
<select id="css_visibilite" name="css_visibilite">
<option value="visible" selected>visibility: visible</option>
<option value="hidden">visibility: hidden</option>
<option value="collapse">visibility: collapse</option>
</select>
Ensuite, un élément <pre> sert à afficher le résultat de l'appel à checkVisibility() lorsqu'aucune option n'est passée en paramètre, ainsi que pour chaque valeur d'option.
Enfin, nous avons l'élément qui est testé (auquel nous appliquons les valeurs CSS sélectionnées).
<pre id="resultat_sortie"></pre>
<div id="element_teste">L'élément à tester pour la visibilité.</div>
CSS
Le CSS met simplement en évidence l'élément à tester.
#element_teste {
border: solid;
border-color: blue;
}
JavaScript
Le code ci-dessous récupère chacun des éléments <select>.
La méthode actualiserCss() est appelée au démarrage et à chaque fois que les éléments de sélection changent, afin d'appliquer le CSS sélectionné à l'élément cible.
const affichageCssSelect = document.getElementById("css_affichage");
const visibiliteContenuAffichageCss = document.getElementById(
"css_visibilite_contenu",
);
const opaciteCssSelect = document.getElementById("css_opacite");
const visibiliteCssSelect = document.getElementById("css_visibilite");
const resultatSortie = document.getElementById("resultat_sortie");
const elementTeste = document.getElementById("element_teste");
actualiserCss();
const selecteursCss = document.querySelectorAll("select");
selecteursCss.forEach((select) => {
select.addEventListener("change", (event) => {
actualiserCss();
});
});
function actualiserCss() {
// Applique les propriétés CSS sélectionnées à l'élément cible
elementTeste.style.display = affichageCssSelect.value;
elementTeste.style.contentVisibility = visibiliteContenuAffichageCss.value;
elementTeste.style.opacity = opaciteCssSelect.value;
elementTeste.style.visibility = visibiliteCssSelect.value;
// Appelle checkVisibility() sur l'élément en utilisant les options par défaut et chacune des options
const resultatVisibiliteDefaut = elementTeste.checkVisibility();
const resultatVisibiliteOpacite = elementTeste.checkVisibility({
opacityProperty: true,
});
const resultatVisibiliteCss = elementTeste.checkVisibility({
visibilityProperty: true,
});
const resultatVisibiliteContenuAuto = elementTeste.checkVisibility({
contentVisibilityAuto: true,
});
// Affiche les résultats des tests
resultatSortie.innerText = `Vérifications sur l'élément ci-dessous (peut être masqué) :
- Résultat de checkVisibility() : ${resultatVisibiliteDefaut}
- Résultat de checkVisibility({opacityProperty: true}) : ${resultatVisibiliteOpacite}
- Résultat de checkVisibility({visibilityProperty: true}) : ${resultatVisibiliteCss}
- Résultat de checkVisibility({contentVisibilityAuto: true}) : ${resultatVisibiliteContenuAuto}`;
}
Résultat
Les résultats sont affichés ci-dessous.
Si vous changez la sélection, les résultats s'appliquent à l'élément de test (contour bleu) et les résultats de checkVisibility() pour chaque réglage s'affichent.
Par exemple, si vous définissez opacity: 0, ce test (seul) indique false.
En revanche, si vous définissez display: none, tous les tests retournent false.
Spécifications
| Spécification |
|---|
| CSSOM View Module> # dom-element-checkvisibility> |