"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment obtenir la largeur et la hauteur précises d'un élément transformé en JavaScript ?

Comment obtenir la largeur et la hauteur précises d'un élément transformé en JavaScript ?

Publié le 2024-11-08
Parcourir:604

How to Get the Accurate Width and Height of a Transformed Element in JavaScript?

Récupération de la largeur et de la hauteur après transformation

Lors de l'application d'une transformation telle que rotation (45deg) à un élément, les dimensions visuelles de cet élément changement. Cependant, les propriétés de largeur et de hauteur en JavaScript reflètent toujours les dimensions d'origine non transformées.

Solution : Utilisation de getBoundingClientRect()

Pour obtenir les dimensions mises à jour après la transformation, utilisez l'option méthode getBoundingClientRect() sur HTMLDOMElement. Cette méthode renvoie un objet contenant la hauteur et la largeur transformées.

Exemple :

// Get the element
const element = document.querySelector('.transformed');

// Calculate the rotated dimensions
const rect = element.getBoundingClientRect();

// Access the rotated width and height
const rotatedWidth = rect.width;
const rotatedHeight = rect.height;

Démo :

Visitez ce jsFiddle pour un exemple pratique : https://jsfiddle.net/your_url_here

Remarque : Cette méthode vous donnera les dimensions de l'élément entier, y compris les bordures ou le remplissage. Si vous devez calculer uniquement les dimensions du contenu, vous devez utiliser offsetWidth et offsetHeight sur l'élément de contenu de l'élément (par exemple,

dans l'élément transformé).
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3