Maison > interface Web > js tutoriel > Comment puis-je vérifier la visibilité des éléments DOM en JavaScript simple ?

Comment puis-je vérifier la visibilité des éléments DOM en JavaScript simple ?

Linda Hamilton
Libérer: 2024-11-29 03:03:17
original
697 Les gens l'ont consulté

How Can I Check DOM Element Visibility in Plain JavaScript?

Vérification de la visibilité des éléments dans le DOM

Question :

Pouvons-nous déterminer si un élément est visible dans le DOM en utilisant JavaScript sans s'appuyer sur des bibliothèques externes comme jQuery ? Si oui, quels attributs devrions-nous prendre en compte pour garantir des contrôles de visibilité précis ?

Réponse :

Pour vérifier la visibilité des éléments en JavaScript pur, considérez les attributs suivants :

  • affichage : Les éléments avec un style "affichage" de "aucun" sont pris en compte caché.
  • visibilité :Les éléments masqués ont un style de "visibilité" de "caché".

Pour vérifier si un élément est visible, vous pouvez utiliser le code suivant :

function isElementVisible(element) {
  // Check if the element has any parent with "display: none"
  if (element.offsetParent === null) {
    return false;
  }

  // Check if the element itself has "display: none" or "visibility: hidden"
  const style = window.getComputedStyle(element);
  return style.display !== "none" && style.visibility !== "hidden";
}
Copier après la connexion

Cette approche fonctionne dans la plupart des cas. Cependant, si votre page contient des éléments avec « position : fixe », vous devrez peut-être utiliser une approche plus complète qui vérifie également les éléments en dehors du flux de documents normal. Dans de tels cas, vous pouvez utiliser ce qui suit :

function isElementVisibleFixed(element) {
  // Check if the element has any parent with "display: none"
  if (element.offsetParent === null) {
    return false;
  }

  // Check if the element itself has "display: none" or "visibility: hidden" or "position: fixed"
  const style = window.getComputedStyle(element);
  return style.display !== "none" && style.visibility !== "hidden" && style.position !== "fixed";
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal