Hjemmeside » Coding » Sådan oprettes 3D Button Flip Animationer med CSS

    Sådan oprettes 3D Button Flip Animationer med CSS

    Flip animationer er populære CSS effekter, der viser både for og bag af et HTML-element ved at dreje dem fra toppen til bunden eller fra venstre til højre (og omvendt). De er rad i 2 dimensioner, men de er endnu køligere, når de udføres i 3D.

    I dette indlæg vil jeg vise dig, hvordan du skal lav enkle 3D-knapper, og tilføj flip animationer til dem.

    Du kan se resultatet på demoen nedenfor, hvis du klikker på knapperne, udfører de den mærket flip animation.

    1. Oprettelse af HTML til 3D-knappen

    For at oprette en 3D-knap (med top → nederste flip), stak vi først tre

    s på hinanden, to til forsiden og bagsiden af ​​knappen, og en tredje til at fylde dybden i midten. Vi sætter de tre knapper i .flipBtn container som vil fungere som 3D-knappen, og vi placerer 3D-knappen i .flipBtnWrapper indpakning.

     
    2. Tilføjelse af grundlæggende stilarter med CSS

    Vi sætter bredde og højde indpakningens egenskaber, knappen og knappens ansigter og positioner dem ved hjælp af den relative / absolutte positioneringsteknik.

     .flipBtnWrapper bredde: 200px; højde: 200px; stilling: relativ;  .flipBtn, .flipBtn_face width: 100%; højde: 100%; position: absolut;  
    3. Styl 3 knapfladerne

    Vi tilføjer baggrundsbilleder til forsiden og bagsiden af ​​knapperne og sætter en kølig lineær gradient bag billederne for begge dele. Tricket her er, at i CSS kan du indstille flere billeder som baggrundsbillede for det samme element, og du kan også erklære gradienter som baggrundsbilleder.

    Mellemfladen, .flipBtn_mid, gives a højde af 20px, og et samme rum på 20px er skabt mellem forsiden og bagsiden. Vi opnår sidstnævnte ved at bruge translateZ () CSS funktion det flytter et element langs z-aksen. Vi skubber bagsiden tilbage med 10px, og sæt forsiden opad med 10px.

     .flipBtn_front baggrundsbillede: url ("image / css-3d-flip-button-animation-play.png"), lineær gradient (# FF6366 50%, # FEA56E); backface-synlighed: skjult; transformere: translateZ (10px);  .flipBtn_back baggrundsbillede: url ("image / css-3d-flip-button-animation-pause.png"), lineær gradient (# FF6366 50%, # FEA56E); baggrundsfarve: blå; transformere: translateZ (-10px);  .flipBtn_mid højde: 20px; baggrundsfarve: # d5485a; transformere: rotateX (90deg); top: -10px; 

    Til dække rummet mellem forsiden og bagsiden med midten, vi læg mellemfladen fladt på tværs af x-planet i 3D-rummet ved hjælp af transformere: rotateX (90deg); regere det gør den vinkelret til både front- og bagknapfladerne på y-planet.

    Da midterfladen blev lagt fladt over x-planet, går dens øverste punkt på y-aksen 10 px (halvdelen af ​​dens højde) ned fra originalen. Så for at trække det op igen og justere sin top med de to andre knapflader, tilføjede jeg top: -10px regel også.

    Jeg brugte backface-synlighed CSS-egenskab til forsiden, så når vi klapper på knappen, vil bagsiden af ​​forsiden ikke blive synlig.

    Hidtil vil du kun se frontfladen på skærmen, da x-flyet er skjult fra visning, og på y-flyet (skærmen) var det sidste ansigt lagt ned foran. Ved at dreje knappen du vil også kunne se de andre ansigter.

    Knappen
    4. Drej knappen

    CSS-egenskaben for transformationstype bestemmer, om barnelementerne i et HTML-element vises fladt eller placeret i 3D-rummet. I kodestykket nedenfor, vises transform-stil: preserve-3d; regel giver 3D-lydstyrke til vores knap, mens transformere: rotatexX () Egenskaben roterer den omkring x-aksen.

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

    Bemærk at jeg brugte -120deg udelukkende til demonstrationsformål, som på denne måde er det nemmere at illustrere, hvordan knaprotationen fungerer.

    Knap roteret med -120 °

    Men i det næste trin vil vi ændre det til -180deg for at gøre knappen helt vende rundt.

    5. Animering af knappen

    På dette tidspunkt er vores 3D-knap stadig ikke animeret. Det kan vi gøre ved at bruge overgang ejendom. Vi bruger omdanne ejendom til den første værdi, da dette er den ejendom, vi ønsker at anvende overgangseffekten til. Den anden værdi er varigheden, 2s.

    Lad os få knappen til kun at dreje på svæver, så i stedet for .flipBtn vælger, lad os bruge .flipBtnWrapper: svævefløjte .flipBtn. Som tidligere nævnt ændres også værdien af rotateX () til -180deg for at gøre knappen flip rundt.

     .flipBtn overgang: transform 2s; transform-stil: preserve-3d;  .flipBtnWrapper: svinge .flipBtn transform: rotateX (-180deg); 

    Bemærk at i Github repo, jeg tilføjede en afkrydsningsfelt til hver knap for at brand animationen på : kontrolleret snarere end på : hover, på denne måde virker det mere som en rigtig knap. Jeg har også inkluderet fire forskellige knapper med fire flip retninger (øverste → nederste, nederste → øverste, højre → venstre og venstre → højre), så du nemt kan bruge alt efter hvad du vil.

    • Se Demo
    • Download kilde