Maison  >  Article  >  interface Web  >  Pourquoi `jQuery.height()` renvoie-t-il une valeur pour un élément masqué ?

Pourquoi `jQuery.height()` renvoie-t-il une valeur pour un élément masqué ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-28 05:23:02710parcourir

Why Does `jQuery.height()` Return a Value for a Hidden Element?

jQuery : height()/width() et "display:none"

Dans ce scénario, l'élément avec l'ID "target " a sa propriété d'affichage définie sur "aucun" via CSS. Cependant, lors de la vérification de sa hauteur à l'aide de $("#target").height(), une valeur non nulle est obtenue.

Ce comportement découle de la gestion interne par jQuery des éléments cachés lors de l'accès à leurs dimensions. Si un élément a un offsetWidth de 0 (considéré comme "caché" par jQuery), la bibliothèque tente de déterminer sa hauteur.

Pour ce faire, jQuery applique temporairement les propriétés suivantes à l'élément :

  • position : "absolue"
  • visibilité : "cachée"
  • affichage : "bloc"

Il récupère ensuite la hauteur en utilisantgetWidthOrHeight(... ), qui ajoute une bordure/un remplissage si nécessaire et restaure les propriétés d'origine.

Essentiellement, jQuery affiche discrètement l'élément خارج حدود تدفق المستند, obtient sa hauteur, puis le cache à nouveau. Cela se produit avant que le thread de l'interface utilisateur puisse être mis à jour, de sorte que l'utilisateur n'est pas au courant du processus.

Ce mécanisme permet à .height()/.width() de fonctionner même sur des éléments masqués, à condition que leurs éléments parents soient visibles. Par conséquent, vous pouvez invoquer .height()/.width() sans effectuer manuellement la séquence afficher/masquer, car elle est gérée en interne par ces méthodes.

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:
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