Αρχική σελίδα » Κωδικοποίηση » Πώς να δημιουργήσετε 3D Κουμπί Flip Animations με CSS

    Πώς να δημιουργήσετε 3D Κουμπί Flip Animations με CSS

    Flip animations είναι δημοφιλή εφέ CSS που εμφανίζονται τόσο το μπροστινό όσο και το πίσω μέρος ενός στοιχείου HTML μετατρέποντάς τα από την κορυφή στο κάτω μέρος ή από τα αριστερά προς τα δεξιά (και αντίστροφα). Είναι ραβδώσεις σε 2 διαστάσεις, αλλά είναι ακόμα πιο δροσερές όταν εκτελούνται σε 3D.

    Σε αυτή τη θέση, θα σας δείξω πώς να δημιουργήστε απλά κουμπιά 3D, και προσθέστε κινούμενα σχέδια σε αυτούς.

    Μπορείτε να δείτε το αποτέλεσμα στο demo παρακάτω, αν κάνετε κλικ στα κουμπιά, θα εκτελέσουν την ετικέτα flip animation.

    1. Δημιουργία του HTML για το κουμπί 3D

    Για να δημιουργήσετε ένα κουμπί 3D (με Top → Bottom flip), πρώτα στοιβάζουμε τρία

    το ένα για το άλλο, δύο για την εμπρός και πίσω πλευρά του κουμπιού και ένα τρίτο για τη συμπλήρωση του βάθους στη μέση. Βάζουμε τις τρεις πλευρές του κουμπιού στο .flipBtn δοχείο που θα λειτουργεί ως κουμπί 3D και τοποθετούμε το κουμπί 3D στο .flipBtnWrapper περικάλυμμα.

     
    2. Προσθήκη βασικών μορφών με το CSS

    Ορίσαμε το πλάτος και ύψος τις ιδιότητες του περιτυλίγματος, του κουμπιού και του κουμπιού και τις τοποθετείτε χρησιμοποιώντας τη σχετική / απόλυτη τεχνική τοποθέτησης.

     .flipBtnWrapper πλάτος: 200px; ύψος: 200px; θέση: σχετική.  .flipBtn, .flipBtn_face πλάτος: 100%; ύψος: 100%. θέση: απόλυτη;  
    3. Στυλ το κουμπί 3 αντιμετωπίζει

    Προσθέτουμε εικόνες φόντου στις μπροστινές και πίσω όψεις των κουμπιών και ρυθμίζουμε μια δροσερή γραμμική κλίση πίσω από τις εικόνες και για τις δύο. Το κόλπο εδώ είναι ότι στο CSS μπορείτε να ορίσετε πολλές εικόνες ως εικόνα φόντου για το ίδιο στοιχείο και μπορείτε επίσης να δηλώσετε κλίσεις ως εικόνες φόντου.

    Το μεσαίο πρόσωπο, .flipBtn_mid, δίνεται α ύψος των 20px, και δημιουργείται ένας ίδιος χώρος 20px μεταξύ της μπροστινής και της πίσω όψης. Επιτυγχάνουμε το τελευταίο χρησιμοποιώντας το translateZ () CSS λειτουργία ότι μετακινεί ένα στοιχείο κατά μήκος του άξονα z. Πάμε το πίσω μέρος πίσω από 10px, και φέρνουμε την εμπρόσθια όψη προς τα εμπρός κατά 10px.

     .flipBtn_front background-image: url ("image / css-3d-flip-button-animation-play.png"), γραμμική κλίση (# FF6366 50%, # FEA56E); backface-ορατότητα: κρυφό. μετασχηματισμός: translateZ (10px);  .flipBtn_back background-image: url ("image / css-3d-flip-button-animation-pause.png"), γραμμική κλίση (# FF6366 50%, # FEA56E); φόντο-χρώμα: μπλε; μετασχηματισμός: translateZ (-10px);  .flipBtn_mid ύψος: 20px; φόντο-χρώμα: # d5485a; μετασχηματισμός: rotateX (90deg); κορυφή: -10px; 

    Προς το κάλυψη του χώρου μεταξύ των εμπρός και πίσω όψεων με τη μεσαία, εμείς βάλτε τη μεσαία όψη επίπεδη σε όλο το x-επίπεδο του 3D χώρου χρησιμοποιώντας το μετασχηματισμός: rotateX (90deg); αποφασίστε αυτό το καθιστά κάθετο τόσο προς το μπροστινό όσο και προς το πίσω μέρος του κουμπιού στο επίπεδο y.

    Δεδομένου ότι το μεσαίο πρόσωπο τοποθετήθηκε επίπεδη κατά μήκος του επιπέδου x, το άνω σημείο του στον άξονα y πηγαίνει 10px (το μισό του ύψους του) κάτω από το πρωτότυπο. Έτσι, για να το τραβήξουμε πίσω και να ευθυγραμμίσουμε την κορυφή με τις δύο άλλες πλευρές των κουμπιών, πρόσθεσα το κορυφή: -10px κανόνα επίσης.

    Χρησιμοποίησα το πίσω όψη-ορατότητα CSS ιδιότητα για την εμπρός όψη, οπότε όταν γυρίσουμε το κουμπί, το πίσω μέρος της πρόσοψης δεν θα είναι ορατό.

    Μέχρι στιγμής, θα βλέπετε μόνο το μπροστινό πρόσωπο στην οθόνη, καθώς το x-plane είναι κρυμμένο από την προβολή, και στο y-plane (οθόνη) το τελευταίο πρόσωπο που καθορίζεται ήταν το μπροστινό. Περιστρέφοντας το κουμπί θα μπορείτε να δείτε και τα άλλα πρόσωπα.

    Το κουμπί
    4. Περιστρέψτε το κουμπί

    Η ιδιότητα CSS στυλ μετασχηματισμού καθορίζει αν τα υποκείμενα στοιχεία ενός στοιχείου HTML εμφανίζονται επίπεδα ή τοποθετούνται στον χώρο 3D. Στο απόσπασμα κώδικα παρακάτω, το μετασχηματισμός-στυλ: διατήρηση-3d; Ο κανόνας δίνει 3D τόνο στο κουμπί μας, ενώ το μετασχηματισμός: rotatexX () ιδιότητα περιστρέφεται γύρω από τον άξονα x.

     .flipBtn μετασχηματισμός-στυλ: διατήρηση-3d; μετασχηματισμός: rotateX (-120deg);  

    Σημειώστε ότι χρησιμοποίησα -120deg αποκλειστικά για λόγους επίδειξης, διότι έτσι είναι ευκολότερο να απεικονιστεί η λειτουργία της περιστροφής του κουμπιού.

    Κουμπί που περιστρέφεται κατά -120 °

    Ωστόσο, στο επόμενο βήμα θα το αλλάξουμε -180deg για να κάνετε το πλήκτρο να στρέφεται τελείως.

    5. Κινήστε το κουμπί

    Σε αυτό το σημείο, το κουμπί μας 3D δεν είναι ακόμα κινούμενο. Μπορούμε να το κάνουμε αυτό χρησιμοποιώντας το μετάβαση ιδιοκτησία. Χρησιμοποιούμε το μεταμορφώνω ιδιότητα για την πρώτη τιμή, καθώς αυτή είναι η ιδιότητα που θέλουμε να εφαρμόσουμε το εφέ μετάβασης για. Η δεύτερη τιμή, είναι η διάρκεια, 2s.

    Ας κάνουμε το κουμπί να περιστρέφεται μόνο όταν αιωρείται, έτσι αντί του .flipBtn επιλογέα, ας χρησιμοποιήσουμε .flipBtnWrapper: hover .flipBtn. Όπως αναφέρθηκε προηγουμένως, αλλάξτε επίσης την τιμή του rotateX () προς το -180deg για να μετακινήσετε το κουμπί.

     .flipBtn μετάβαση: μετασχηματισμός 2s; μετασχηματισμός-στυλ: διατήρηση-3d;  .flipBtnWrapper: hover .flipBtn μετασχηματισμός: rotateX (-180deg); 

    Σημειώστε ότι στο repo της Github, εγώ πρόσθεσε ένα πλαίσιο ελέγχου σε κάθε κουμπί για να ενεργοποιήσετε την κινούμενη εικόνα :τετραγωνισμένος αντί για :φτερουγίζω, με αυτόν τον τρόπο συμπεριφέρεται περισσότερο σαν ένα πραγματικό κουμπί. Επίσης, έχω συμπεριλάβει τέσσερα διαφορετικά κουμπιά με τέσσερις κατεύθυνες (Top → Bottom, Bottom → Top, Right → Left and Left → Right) έτσι ώστε να μπορείτε εύκολα να χρησιμοποιήσετε όποιον θέλετε.

    • Προβολή επίδειξης
    • Λήψη πηγής