Beranda » Coding » Cara Membuat Animasi Balik Tombol 3D Dengan CSS

    Cara Membuat Animasi Balik Tombol 3D Dengan CSS

    Balik animasi adalah efek CSS populer yang ditampilkan bagian depan dan belakang elemen HTML dengan memutarnya dari atas ke bawah, atau dari kiri ke kanan (dan sebaliknya). Mereka rad dalam 2 dimensi, tetapi mereka lebih keren ketika dilakukan dalam 3D.

    Dalam posting ini, saya akan menunjukkan caranya buat tombol 3D sederhana, dan tambahkan animasi flip ke mereka.

    Anda dapat melihat hasilnya pada demo di bawah ini, jika Anda mengklik tombol, mereka akan melakukan animasi flip berlabel.

    1. Membuat HTML untuk tombol 3D

    Untuk membuat tombol 3D (dengan flip Atas → Bawah), pertama kita susun tiga

    satu sama lain, dua untuk bagian depan dan belakang tombol, dan yang ketiga untuk mengisi kedalaman di tengah. Kami menempatkan tombol tiga wajah ke dalam .flipBtn wadah yang akan berfungsi sebagai tombol 3D, dan kami menempatkan tombol 3D ke dalam .flipBtnWrapper pembungkus.

     
    2. Menambahkan gaya dasar dengan CSS

    Kami mengatur lebar dan tinggi properti pembungkus, tombol, dan tombol menghadap, dan posisikan menggunakan teknik penentuan posisi relatif / absolut.

     .flipBtnWrapper width: 200px; tinggi: 200px; posisi: relatif;  .flipBtn, .flipBtn_face width: 100%; tinggi: 100%; posisi: absolut;  
    3. Gaya 3 tombol menghadap

    Kami menambahkan gambar latar belakang ke muka tombol depan dan belakang, dan mengatur gradien linier keren di belakang gambar untuk keduanya. Kuncinya di sini adalah bahwa di CSS, Anda dapat mengatur beberapa gambar sebagai gambar latar untuk elemen yang sama, dan Anda juga dapat mendeklarasikan gradien sebagai gambar latar.

    Wajah tengah, .flipBtn_mid, diberikan a tinggi 20px, dan ruang yang sama 20px dibuat antara wajah depan dan belakang. Kami mencapai yang terakhir dengan menggunakan translateZ () Fungsi CSS itu memindahkan elemen di sepanjang sumbu z. Kami mendorong kembali wajah belakang sebesar 10px, dan membawa wajah depan ke depan sebesar 10px.

     .flipBtn_front background-image: url ("image / css-3d-flip-button-animation-play.png"), gradien linier (# FF6366 50%, # FEA56E); visibilitas-backface: tersembunyi; transform: translateZ (10px);  .flipBtn_back background-image: url ("image / css-3d-flip-button-animation-pause.png"), gradien linier (# FF6366 50%, # FEA56E); warna latar belakang: biru; transform: translateZ (-10px);  .flipBtn_mid height: 20px; warna latar: # d5485a; transform: rotateX (90deg); atas: -10px; 

    Untuk menutupi ruang antara wajah depan & belakang dengan yang di tengah, kita berbaring wajah tengah datar melintasi bidang x ruang 3D menggunakan transform: rotateX (90deg); atur itu membuatnya tegak lurus untuk kedua tombol tombol depan dan belakang pada y-plane.

    Karena wajah tengah diletakkan rata pada bidang x, titik puncaknya pada sumbu y bergerak 10px (setengah dari ketinggiannya) turun dari aslinya. Jadi, untuk menariknya kembali dan menyelaraskan bagian atasnya dengan dua sisi tombol lainnya, saya menambahkan atas: -10px memerintah juga.

    Saya menggunakan visibilitas-backface Properti CSS untuk wajah depan, jadi ketika kita membalik tombol, bagian belakang wajah depan tidak akan terlihat.

    Sejauh ini, Anda hanya akan melihat wajah depan di layar, karena x-plane tersembunyi dari pandangan, dan pada y-plane (layar) wajah terakhir diletakkan di depan. Dengan memutar tombol Anda akan dapat melihat wajah-wajah lain juga.

    Tombol
    4. Memutar tombol

    Properti CSS gaya transformasi menentukan apakah elemen turunan dari elemen HTML ditampilkan datar, atau diposisikan di ruang 3D. Dalam cuplikan kode di bawah ini, the transform-style: preserve-3d; aturan memberikan volume 3D ke tombol kami, sedangkan transform: rotatexX () properti memutarnya di sekitar sumbu x.

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

    Perhatikan bahwa saya menggunakan -120 derajat semata-mata untuk tujuan demonstrasi, karena cara ini lebih mudah untuk menggambarkan cara kerja rotasi tombol.

    Tombol diputar oleh -120 °

    Namun pada langkah selanjutnya kita akan mengubahnya menjadi -180 derajat untuk membuat tombol benar-benar terbalik.

    5. Animasi tombol

    Pada titik ini, tombol 3D kami masih belum dianimasikan. Kita dapat melakukan ini dengan menggunakan transisi milik. Kami menggunakan mengubah properti untuk nilai pertama, karena ini adalah properti yang ingin kami terapkan efek transisi untuk. Nilai kedua, adalah durasi, 2s.

    Mari kita buat tombol hanya berputar pada hover, jadi alih-alih .flipBtn pemilih, mari kita gunakan .flipBtnWrapper: arahkan kursor .flipBtn. Seperti disebutkan sebelumnya, juga mengubah nilai rotateX () untuk -180 derajat untuk membuat tombol terbalik.

     .flipBtn transisi: transform 2s; transform-style: preserve-3d;  .flipBtnWrapper: hover .flipBtn transform: rotateX (-180deg); 

    Perhatikan bahwa dalam repo Github, saya menambahkan kotak centang ke setiap tombol untuk mengaktifkan animasi : dicentang bukannya pada : melayang, dengan cara ini ia berperilaku lebih seperti tombol sungguhan. Saya juga menyertakan empat tombol berbeda dengan empat arah flip (Atas → Bawah, Bawah → Atas, Kanan → Kiri dan Kiri → Kanan), sehingga Anda dapat dengan mudah menggunakan mana saja yang Anda inginkan.

    • Lihat Demo
    • Sumber Unduhan