Mājas lapa » Kodēšana » Kā izveidot 3D pogu Flip animācijas ar CSS

    Kā izveidot 3D pogu Flip animācijas ar CSS

    Flip animācijas ir populāri CSS efekti, kas parāda gan priekšā, gan aizmugurē no HTML elementa, pagriežot tos no augšas uz leju vai no kreisās uz labo pusi (un otrādi). Tie ir 2 dimensiju rad, bet tie ir vēl vēsāki, ja tos veic 3D režīmā.

    Šajā ziņojumā es jums parādīšu, kā to darīt izveidot vienkāršas 3D pogas, un pievienot flip animācijas viņiem.

    Ja jūs noklikšķināsiet uz pogām, jūs redzēsiet zemāk redzamo demo rezultātu, viņi izpildīs iezīmēto flip animāciju.

    1. 3D pogas HTML izveide

    Lai izveidotu 3D pogu (ar augšējo → apakšējo pārsegu), vispirms mēs sakārtojam trīs

    s viens otram, divas priekšpusē un aizmugurē esošajām pogām, bet trešais - dziļuma aizpildīšanai vidū. Mēs ievietojam trīs pogas pretī .flipBtn konteiners, kas darbosies kā 3D poga, un mēs ievietojam 3D pogu .flipBtnWrapper iesaiņojums.

     
    2. Pamata stilu pievienošana CSS

    Mēs iestatām platums un augstums iesaiņojuma īpašības, poga un poga saskaras un novieto tos, izmantojot relatīvo / absolūto pozicionēšanas tehniku.

     .flipBtnWrapper platums: 200px; augstums: 200px; pozīcija: relatīvais;  .flipBtn, .flipBtn_face platums: 100%; augstums: 100%; pozīcija: absolūta;  
    3. Stils 3 pogas saskaras

    Mēs pievienojam fona attēlus priekšpuses un aizmugures pogām, un aiz abiem attēliem iestatām atdzist lineāru gradientu. Šeit triks ir tas, ka CSS varat iestatīt vairākus attēlus kā tā paša elementa fona attēlu, un jūs varat arī pasludināt gradientus kā fona attēlus.

    Vidējā seja, .flipBtn_mid, tiek dota a augstums 20px, un starp 20 un vairākkārtēju telpu tiek veidota viena un tā pati vieta. Mēs to panākam, izmantojot translateZ () CSS tas darbojas pārvieto elementu gar z-asi. Mēs virzām muguras seju atpakaļ ar 10px, un priekšpusi uz priekšu virzīsim 10px.

     .flipBtn_front fona attēls: url ("image / css-3d-flip-button-animation-play.png"), lineārs gradients (# FF6366 50%, # FEA56E); redzamība: slēpta; pārveidot: translateZ (10px);  .flipBtn_back fona attēls: url ("image / css-3d-flip-button-animation-pause.png"), lineārā gradienta (# FF6366 50%, # FEA56E); fona krāsa: zila; transformēt: translateZ (-10px);  .flipBtn_mid augstums: 20px; fona krāsa: # d5485a; transformēt: rotateX (90deg); tops: -10px; 

    Uz aptver telpu starp priekšējo un aizmugures seju ar vidējo, mēs novietojiet vidējo seju plakanā izmantojot 3D telpas x plakni, izmantojot transformēt: rotateX (90deg); valdīt to padara to perpendikulāru uz priekšējo un aizmugurējo pusi uz Y plaknes.

    Tā kā vidējā seja tika likta plakana pāri x plaknei, tā augšējais punkts uz y ass iet 10px (puse no tā augstuma) no oriģināla. Tātad, lai to izvilktu atpakaļ un saskaņotu savu topu ar divām pārējām pogām, es pievienoju top: -10px valda arī.

    Es izmantoju redzamība CSS īpašība priekšējai virsmai, tāpēc, kad mēs nospiežam pogu, priekšējās virsmas aizmugure nebūs redzama.

    Līdz šim uz ekrāna būs redzama tikai priekšējā seja, jo x plakne ir paslēpta no skata, un y-plaknē (ekrānā) pēdējais uzliktais seja bija priekšējais. Pagriežot pogu jūs varēsiet redzēt arī citas sejas.

    Poga
    4. Pagriežot pogu

    Transformācijas stila CSS īpašums nosaka, vai HTML elementa bērnu elementi tiek parādīti plakanā stāvoklī vai novietoti 3D telpā. Tālāk redzamajā koda fragmentā transform-style: preserve-3d; noteikums dod 3D pogu mūsu pogai, kamēr pārveidot: rotatexX () īpašums rotē ap x-asi.

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

    Ņemiet vērā, ka es to izmantoju -120deg tikai demonstrācijas nolūkos, jo tādējādi ir vieglāk parādīt, kā darbojas pogas rotācija.

    Poga pagriezta par -120 °

    Tomēr nākamajā solī mēs to mainīsim -180deg lai poga būtu pilnīgi apvērsta.

    5. Poga animēšana

    Šajā brīdī mūsu 3D poga joprojām nav animēta. To varam izdarīt, izmantojot pāreju īpašums. Mēs izmantojam pārveidot īpašums pirmajai vērtībai, jo tas ir īpašums, kuru mēs vēlamies piemērot pārejas efektam. Otrā vērtība ir ilgums, 2s.

    Pieņemsim, ka poga rotēs tikai lidmašīnā, tā vietā, lai .flipBtn selektors, izmantojam .flipBtnWrapper: hover .flipBtn. Kā minēts iepriekš, mainiet arī vērtības vērtību rotateX () uz -180deg lai poga būtu apvērsta.

     .flipBtn pāreja: transformēt 2s; transform-style: preserve-3d;  .flipBtnWrapper: hover .flipBtn transformēt: rotateX (-180deg); 

    Ņemiet vērā, ka Github repo, es pievienoja katrai pogai izvēles rūtiņu lai aktivizētu animāciju : pārbaudīts nevis uz : lidināties, šādā veidā tā darbojas vairāk kā īsta poga. Es iekļāvu arī četras dažādas pogas ar četriem flip virzieniem (augšā → apakšā, apakšā → augšā, labajā pusē → pa kreisi un pa kreisi → pa labi), lai jūs varētu viegli izmantot vēlamo.

    • Skatīt demonstrāciju
    • Lejupielādēt avotu