2 votes

Comment obtenir la largeur d'un élément en px dans les composants stylisés ?

Comme l'élément peut varier sa largeur en fonction de son contenu, je ne sais pas comment obtenir sa largeur en px.

Voici la structure de base, simplifiée :

// React component 

export const Navbar = ({ month }) => (
  <NavbarStyled>
    <div>
      <span>{month}</span>  //month is what varies in width
    </div>
  </NavbarStyled>
)

// NavbarStyled.js

export const NavbarStyled = styled.nav`
  ...

  span:after{
    ...  

    animation: show 1s ease forwards;
  }

  @keyframes show{
    100%{
      transform: translateX(the_element's_width_in_px);
    }
  }
`

J'ai essayé beaucoup de choses sans résultat.

Merci !

2voto

Sharna J Points 81

Vous pouvez obtenir la largeur en utilisant la fonction Fonction getBoundingClientRect() qui renvoie un objet contenant les attributs de l'élément. Avec les composants stylisés, vous devrez référencer l'élément à l'aide de l'attribut useRef crochet ou une autre méthode de référencement afin d'appeler getBoundingClientRect().

referencedElement.getBoundingClientRect()
// Return the width by calling referencedElement.getBoundingClientRect().width

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X