Skip to main content

Pengenalan Animasi CSS bagi Pemula

Saat ini, semakin banyak website yang menggunakan animasi, baik dalam bentuk GIF, SVG, WebGL, video latar dan lain sebagainya. Ketika digunakan dengan benar, animasi dapat memberikan kesan hidup dan interaktifitas, menambahkan lapisan tambahan untuk meningkatkan pengalaman pengguna website.
Pada tutorial ini, saya akan memperkenalkan anda kepada animasi CSS; sebuah cara untuk menambahkan animasi dengan performa terbaik yang menjadi semakin populer seiring dengan dukungan browser yang meningkat. Selesai dengan pembahasan dasar, kita akan membuat contoh kecil dengan membuat animasi dengan mengubah sebuah kotak menjadi sebuah lingkaran.
Komponen utama dari animasi CSS adalah @keyframes, aturan CSS di mana sebuah animasi didefinisikan. Bayangkan @keyframes sebagai tahapan-tahapan yang merangkai timeline pada animasi. Di dalam @keyframes, anda dapat menentukan tahapan ini, dengan masing-masing memiliki sebuah style yang berbeda.
Selanjutnya, agar animasi berjalan, anda perlu mengaitkan @keyframes tersebut ke dalam sebuah selector. Selector secara bertahap akan mengurai semua kode yang terkandung di dalam @keyframes dan mengubah style awal menjadi style baru, berdasarkan tahapan-tahapan yang telah ditentukan.
Di sini kita akan mengatur tahapan animasi. Properti-properti di dalam @keyframes kita adalah:
  • Nama animasi (tutsFade dalam contoh ini).
  • Tahapan: 0%-100%; dari (sama dengan 0%) dan hingga (sama dengan 100%).
  • Style CSS: style yang anda ingin aplikasikan dalam setiap tahapannya.
Contoh:

atau:

atau dengan shorthand:

Kode di atas akan menerapkan sebuah efek transisi terhadap opacity dari sebuah elemen, dari opacity: 1 menjadi opacity: 0. Masing-masing dari contoh di atas akan menghasilkan hasil akhir yang sama.
Properti animasi digunakan untuk memanggil @keyframes ke dalam sebuah selector CSS. Animasi dapat memiliki beberapa properti sebagai berikut:
  • animation-name: nama @keyframes (ingat kita memilih tutsFade).
  • animation-duration: durasi animasi, total durasi dari animasi dari awal hingga akhir.
  • animation-timing-function: mengatur kecepatan animasi ( linear | ease | ease-in | ease-out | ease-in-out | cubic-bezier ).
  • animation-delay: durasi tunda ebelum animasi kita mulai.
  • animation-iteration-count: jumlah penambahan dalam animasi.
  • animation-direction: memberi anda kemampuan untuk mengubah arah loop, dari awal hingga akhir, atau dari akhir hingga awal, atau keduanya.
  • animation-fill-mode: menentukan style yang akan di terapkan ke dalam elemen ketika animasi kita selesai ( none | forwards | backwards | both )
Contohnya:

atau dengan menggunakan shorthand:

Kode di atas akan mencipatakan efek kedip, dengan waktu tunda 1 detik, 4 detik total durasi animasi, dengan arah berbalik dan putaran loop tanpa batas.
Selama masih menjadi working draft, kita butuh menambahakan properti animation dengan awalan khusus untuk memastikan dukungan terbaik browser. Standard awalan ini adalah:
  • Chrome & Safari: -webkit-
  • Firefox: -moz-
  • Opera: -o-
  • Internet Explorer: -ms-
Sebuah properti animation dengan menggunakan awalan akan nampak seperit berikut:
begitu pula dengan @keyframes:

Agar mudah terbaca, saya akan melanjutkan tutorial ini dengan tanpa menggunakan awalan, namun versi akhir akan menyertakan awalan khusus untuk semua browser dan saya juga mendorong anda untuk menggunakan awalan pada kode CSS anda.
Untuk mengetahui lebih lanjut tentang awalan vendor, anda dapat melihat http://css3please.com/.
Anda dapat menambahkan banyak animasi ke dalam satu elemen dengan menggunakan tanda koma sebagai tanda pemisah. Katakan kita ingin menambahkan rotasi pada elemen tutsFade, kita dapat melakukannya dengan membuat @keyframes tambahan dan kemudian mengaitkannya ke dalam element kita, seperti ini:

Sekarang, mari kita membuat contoh bentuk animasi sederhana; dengan mengubah kotak menjadi lingkaran dengan menggunakan prinsip yang telah kita bahas di atas. Kita akan memiliki total lima tahapan dan untuk masing-masing tahapan kita akan mendefinisikan sebuah border-radius, sebuah rotasi dan sebuah latar warna berbeda untuk elemen kita.
Pertama, mari kita susunan markup-nya, yaitu elemen yang akan kita animasikan. Kita tidak akan menambahkan kelas, kita hanya akan menggunakan sebuah div:


Kemudian, dengan menggunakan sebauh selector (div {}), tambahkan styling dasar untuk div tersebut:
Sekarang mari kita siapkan @keyframes, yang akan kita beri nama square-to-circle, berserta lima tahapannya.


Kita perlu menentukan styles untuk masing-masing tahapan di atas, jadi mari kita mulai dengan menentukan besaran border-radius untuk masing ujung kotak.


Sebagai tambahan, kita akan memberikan sebuah background-color berbeda di masing-masing tahapan.


Untuk membuatnya lebih menarik, selain border-radius dan background-color, kita juga akan merotasi div.

Setalah kita mendefinisikan animasi square-to-circle, kita akan menerapkannya ke dalam div:


Di sini anda melihat kita telah menambahkan porperti animation shorthand, yang menyatakan:
  • animation-name adalah square-to-circle.
  • animation-duration adalah 2s.
  • animation-delay adalah 1s.
  • animation-iteration-count adalah infinite, jadi animasinya akan berjalan seterusnya tanpa batas.
  • Dan animation-direction adalah alternate, jadi animasinya akan berjalan dari awal hingga akhir, kemudian kembali ke awal lagi, dan lagi hingga akhir, dan seterusnya.
Satu nilai terakhir yang dapat kita tambahkan pada properti animation adalah animation-timing-function. Ini akan menentukan kecepatan, percepatan, dan perlambatan dari pergerakan animasi kita. Fungsi ini dapat memiliki nilai yang sangat detail, yang akan cukup sulit untuk dihitung secara manual, namun ada banyak website gratis yang menyediakan layanan untuk menghitung fungsi waktu animasi ini.
Salah satu alat tersebut adalah CSS Easing Animation Tool, jdai kita akan menggunakannya untuk menentukan nilai dari fungsi waktu.
I would like to add an elastic effect to our square-to-circle animation, using a cubic-bezier function.
Saya ingin menambahkan sebuah efek elastis untuk animasi square-to-circle kita, dengan menggunakan nilai cubic-bezier.
Setelah bermain dengan alat ini dan menghasilkan beberapa macam kurva bezier, perbarui nilai dari timing-function dengan seperti yang terlihat pada kode di bawah ini.


Kode akhir, tanpa tambahan awalan vendor ( -webkit- , -moz-, -ms-, -o- ) adalah sebagai berikut:

Semuanya berjalan dengan baik di browser terkini, tapi Firefox mempunya kebiasaan yang buruk dalam menampilkan transformasi obyek. Lihatlah garis-garis yang bergerigi berikut untuk melihat apa yang saya maksud.
Untungnya, ada cara untuk menyelesaikan masalah ini. Yaitu dengan mengubah outline pada div tersebut menjadi transparan seperti di bawah ini dan Firefox akan menampilkannya dengan sempurna!
Kita telah menggunakan animasi CSS untuk membuat sebuah contoh sederhana, animasi berulang

Comments

Popular posts from this blog

SEJARAH SINGKAT BAHASA C dan C++

Apa itu Bahasa C++? Apa itu Bahasa C++? Bahasa C++ adalah pengembangan dari bahasa C, salah satu bahasa pemprograman. Bahasa C++ pertama kali dikembangkan oleh Bjarne Stroustrup dari AT&T Bell Laboratories di tahun 1980-an. Lalu pada tahun 1983 hingga 1984 bahasa C++ dikembangkan lagi dengan menambahkan beberapa fitur yaitu virtual functions, function overloading, referensi dengan simbol &, konstan keyword, dan satu baris komentar dengan 2 tanda forward slashes (//). Sejarah Singkat Bahasa C Pencipta bahasa C adalah Brian W. Kernighan dan Denis M. Ritchi, sekitar tahun 1972. Penulisan pemrograman pada bahasa C dilakukan dalam membagi blok-blok, sehingga bahasa C disebut bahasa terstruktur. Bahasa C dapat digunakan di berbagai mesin dengan mudah, mulai dari PC sampai dengan mainframe, dengan berbagai sistem operasi (DOS, UNIX, VMS, dll). Bahasa pemrograman C merupakan bahasa pemrograman yang dapat dikatakan berada diantara bahasa beraras rendah dan beraras tinggi. Bahasa...

Fitur dan spesifikasi

Ubuntu TV . Semua siaran televisi Terestrial siaran dalam format AS dan Uni Eropa standar, untuk konten definisi standar atau tinggi, dengan terintegrasi panduan program elektronik. Kabel dan satelit kemungkinan Mengintegrasikan kabel atau layanan satelit ke Ubuntu TV, untuk memberikan pengalaman pelanggan yang terpadu. Ubuntu menjembatani kesenjangan antara produsen televisi dan kabel atau penyedia satelit. Tak berujung hiburan online Ubuntu TV mengintegrasikan penyedia konten online untuk menawarkan katalog beragam film, acara TV dan musik langsung dari Internet. Manfaatkan layanan kerangka Canonical dan mitra konten, atau mengintegrasikan layanan Anda sendiri   Peningkatan Melihat Kedua layar pengalaman merupakan tren yang muncul dalam siaran televisi . Tautan ponsel atau tablet ke Ubuntu TV , menyajikan konten yang terkait untuk pemirsa sementara mereka menonton. Memberikan informasi tentang film oleh sutradara yang sama , misalnya, a...

Install Aplikasi di Ubuntu

Masuk ke  Ubuntu Software Center   (Aplications>Ubuntu software Center) Klik salah satu kategorinya, misal Internet Klik salah satu pilihan, misal  Chat Klik salah satu aplikasi, misal  Google Talk (aplikasi chat untuk Akun Google) Akan muncul button  More Info  dan  Install . More Info untuk mengetahui informasi mengenai aplikasi dan Install untuk install aplikasi. Klik  Install  dan proses instalasi akan muncul kotak dialog untuk memasukkan  password root . Maka proses instalasi akan berjalan Jika sudah selesai,