Page d'accueil » Codage » Comment créer des animations de bouton 3D avec CSS

    Comment créer des animations de bouton 3D avec CSS

    Flip animations sont des effets CSS populaires qui montrent à l'avant et à l'arrière d'un élément HTML en les tournant de haut en bas ou de gauche à droite (et inversement). Ils sont radiaux en 2 dimensions, mais ils sont encore plus froids en 3D.

    Dans ce post, je vais vous montrer comment créer des boutons 3D simples, et ajouter des animations de retournement pour eux.

    Vous pouvez voir le résultat sur la démo ci-dessous, si vous cliquez sur les boutons, ils effectueront l'animation flip étiquetée.

    1. Création du code HTML pour le bouton 3D

    Pour créer un bouton 3D (avec Top → Bottom Flip), nous empilons d’abord trois

    s l'un sur l'autre, deux pour les faces avant et arrière du bouton et un troisième pour remplir la profondeur au milieu. Nous mettons les trois boutons dans le .flipBtn conteneur qui fonctionnera comme le bouton 3D, et nous plaçons le bouton 3D dans le .flipBtnWrapper emballage.

     
    2. Ajouter des styles de base avec CSS

    Nous avons mis le largeur et la taille les propriétés du wrapper, du bouton et des faces du bouton et les positionner à l'aide de la technique de positionnement relatif / absolu.

     .flipBtnWrapper width: 200px; hauteur: 200px; position: relative;  .flipBtn, .flipBtn_face width: 100%; hauteur: 100%; position: absolue;  
    3. Stylisez les 3 faces des boutons

    Nous ajoutons des images d'arrière-plan aux faces des boutons avant et arrière, et définissons un dégradé linéaire froid derrière les images pour les deux. L'astuce ici est qu'en CSS, vous pouvez définir plusieurs images en tant qu'image d'arrière-plan pour le même élément et vous pouvez également déclarer des dégradés en tant qu'images d'arrière-plan..

    La face du milieu, .flipBtn_mid, est donné un la taille 20px et un même espace de 20px est créé entre les faces avant et arrière. Nous réalisons ce dernier en utilisant le translateZ () Fonction CSS qui déplace un élément le long de l'axe z. Nous repoussons la face arrière de 10px et la face avant de 10px.

     .flipBtn_front background-image: url ("image / css-3d-flip-button-animation-play.png"), dégradé linéaire (# FF6366 50%, # FEA56E); visibilité face arrière: masquée; transformer: translateZ (10px);  .flipBtn_back background-image: url ("image / css-3d-flip-animation-pause.png"), linear-gradient (# FF6366 50%, # FEA56E); couleur de fond: bleu; transformer: translateZ (-10px);  .flipBtn_mid height: 20px; couleur de fond: # d5485a; transformer: rotateX (90deg); en haut: -10px; 

    À couvrir l'espace entre les faces avant et arrière avec celle du milieu, nous poser la face médiane à plat à travers le plan des x de l’espace 3D en utilisant le transformer: rotateX (90deg); règle que le rend perpendiculaire sur les faces avant et arrière du bouton dans le plan y.

    Étant donné que la face médiane a été posée à plat sur le plan x, son point le plus haut sur l'axe des ordonnées descend de 10 px (la moitié de sa hauteur) par rapport à l'original. Donc, pour le remonter et aligner son sommet avec les deux autres faces des boutons, j’ai ajouté le en haut: -10px règle aussi.

    J'ai utilisé le visibilité arrière Propriété CSS pour la face avant, donc quand on retourne le bouton, l'arrière de la face avant ne sera pas visible.

    Jusqu'à présent, vous ne verrez que la face avant sur l'écran, le plan x étant masqué, et sur le plan y (écran), la dernière face posée était la face avant.. En tournant le bouton vous pourrez aussi voir les autres visages.

    Le bouton
    4. Tourner le bouton

    La propriété CSS de type transformation détermine si les éléments enfants d'un élément HTML sont affichés à plat ou positionnés dans l'espace 3D. Dans l'extrait de code ci-dessous, le transformer-style: preserve-3d; règle donne le volume 3D à notre bouton, tandis que la transformer: rotatexX () la propriété tourne autour de l'axe des x.

     .flipBtn transform-style: preserve-3d; transformation: rotateX (-120deg);  

    Notez que j'ai utilisé -120deg uniquement à des fins de démonstration, il est ainsi plus facile d'illustrer le fonctionnement de la rotation des boutons.

    Bouton tourné de -120 °

    Cependant, dans la prochaine étape, nous allons le changer pour -180deg faire tourner le bouton complètement.

    5. Animation du bouton

    À ce stade, notre bouton 3D n'est toujours pas animé. Nous pouvons le faire en utilisant le transition propriété. Nous utilisons le transformer propriété pour la première valeur, car il s'agit de la propriété pour laquelle vous souhaitez appliquer l'effet de transition. La deuxième valeur, est la durée, 2s.

    Faisons en sorte que le bouton ne tourne qu'en survol, alors au lieu de .flipBtn sélecteur, utilisons .flipBtnWrapper: survolez .flipBtn. Comme mentionné précédemment, changez également la valeur de rotationX () à -180deg faire tourner le bouton.

     .flipBtn transition: transform 2s; transformer-style: preserve-3d;  .flipBtnWrapper: survolez .flipBtn transform: rotateX (-180deg); 

    Notez que dans le repo Github, je ajouté une case à cocher à chaque bouton afin de lancer l'animation sur :vérifié plutôt que sur :flotter, De cette façon, il se comporte davantage comme un vrai bouton. J'ai également inclus quatre boutons différents avec quatre directions d'inversion (Haut → Bas, Bas → Haut, Droite → Gauche et Gauche → Droite), de sorte que vous puissiez facilement utiliser ce que vous voulez..

    • Voir la démo
    • Source de téléchargement