Apa perbedaan animasi di css?

Menghidupkan. css v4 membawa beberapa perubahan besar, silakan lihat sebelum memperbarui dari v3. x dan di bawah

Menghidupkan. css adalah perpustakaan animasi lintas-browser yang siap digunakan untuk digunakan dalam proyek web Anda. Bagus untuk penekanan, beranda, penggeser, dan petunjuk pemandu perhatian

Edit ini di GitHub

Instalasi dan Penggunaan

Menginstal

Instal dengan npm

$ npm install animate.css --save

Atau instal dengan Yarn (ini hanya akan berfungsi dengan alat yang sesuai seperti Webpack, Parcel, dll. Jika Anda tidak menggunakan alat apa pun untuk mengemas atau memaketkan kode, Anda cukup menggunakan metode CDN di bawah)

$ yarn add animate.css
_

Impor ke file Anda

import 'animate.css';

Atau tambahkan langsung ke halaman web Anda menggunakan CDN


  

Penggunaan dasar

Setelah menginstal Animate. css, tambahkan kelas

import 'animate.css';
_8 ke elemen, bersama dengan salah satu (jangan lupa awalan
import 'animate.css';
9. )

An animated element

_

Itu dia. Anda memiliki elemen animasi CSS. Super

Animasi dapat meningkatkan UX antarmuka, tetapi perlu diingat bahwa animasi juga dapat mengganggu pengguna Anda. Harap baca bagian dan untuk menghidupkan hal-hal web Anda dengan cara terbaik

Menggunakan

  

_0

Meskipun perpustakaan memberi Anda beberapa kelas pembantu seperti kelas


  

1 agar Anda dapat menjalankan dengan cepat, Anda dapat langsung menggunakan animasi yang disediakan

  

2. Ini memberikan cara yang fleksibel untuk menggunakan Animate. css dengan proyek Anda saat ini tanpa harus memperbaiki kode HTML Anda

Contoh

.my-element {
  display: inline-block;
  margin: 0 0.5rem;

  animation: bounce; /* referring directly to the animation's @keyframe declaration */
  animation-duration: 2s; /* don't forget to set a duration! */
}

Ketahuilah bahwa beberapa animasi bergantung pada properti


  

3 yang diatur pada kelas animasi. Mengubah atau tidak mendeklarasikannya dapat menyebabkan hasil yang tidak diharapkan

Properti Khusus CSS (Variabel CSS)

Sejak versi 4, Animate. css menggunakan properti khusus (juga dikenal sebagai variabel CSS) untuk menentukan durasi, penundaan, dan iterasi animasi. Ini membuat Animate. css sangat fleksibel dan dapat disesuaikan. Perlu mengubah durasi animasi?

Contoh

/* This only changes this particular animation duration */
.animate__animated.animate__bounce {
  --animate-duration: 2s;
}

/* This changes all the animations globally */
:root {
  --animate-duration: 800ms;
  --animate-delay: 0.9s;
}

Properti khusus juga memudahkan untuk mengubah semua properti animasi Anda yang dibatasi waktu dengan cepat. Ini berarti Anda dapat memiliki efek gerak lambat atau selang waktu dengan javascript one-liner

// All animations will take twice the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '2s');

// All animations will take half the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '.5s');

Meskipun beberapa browser lama tidak mendukung properti khusus, Animate. css memberikan fallback yang tepat, memperluas dukungannya untuk semua browser yang mendukung animasi CSS

Edit ini di GitHub

Kelas Utilitas

Menghidupkan. css hadir dengan beberapa kelas utilitas untuk menyederhanakan penggunaannya

Kelas tunda

Anda dapat menambahkan penundaan secara langsung pada atribut kelas elemen, seperti ini

Example

Menghidupkan. css memberikan penundaan berikut

Class nameDefault delay time

  

4

  

5

  

6

  

7

  

8

  

9

An animated element

0

An animated element

1

Penundaan yang disediakan adalah dari 1 hingga 5 detik. Anda dapat menyesuaikannya dengan menyetel properti

An animated element

2 ke durasi yang lebih lama atau lebih singkat

/* All delay classes will take 2x longer to start */
:root {
  --animate-delay: 2s;
}

/* All delay classes will take half the time to start */
:root {
  --animate-delay: 0.5s;
}

Kelas lambat, lebih lambat, cepat, dan lebih cepat

Anda dapat mengontrol kecepatan animasi dengan menambahkan kelas-kelas ini, seperti di bawah ini

$ yarn add animate.css
0Class nameDefault speed time

An animated element

3

  

5

An animated element

5

  

7

An animated element

7

An animated element

8

An animated element

9
.my-element {
  display: inline-block;
  margin: 0 0.5rem;

  animation: bounce; /* referring directly to the animation's @keyframe declaration */
  animation-duration: 2s; /* don't forget to set a duration! */
}
0

Kelas

import 'animate.css';
_8 memiliki kecepatan default
.my-element {
  display: inline-block;
  margin: 0 0.5rem;

  animation: bounce; /* referring directly to the animation's @keyframe declaration */
  animation-duration: 2s; /* don't forget to set a duration! */
}
2. Anda juga dapat menyesuaikan durasi animasi melalui properti
.my-element {
  display: inline-block;
  margin: 0 0.5rem;

  animation: bounce; /* referring directly to the animation's @keyframe declaration */
  animation-duration: 2s; /* don't forget to set a duration! */
}
3, secara global atau lokal. Ini akan memengaruhi animasi dan kelas utilitas. Contoh

$ yarn add animate.css
_1

Perhatikan bahwa beberapa animasi memiliki durasi kurang dari 1 detik. Karena kita menggunakan fungsi

.my-element {
  display: inline-block;
  margin: 0 0.5rem;

  animation: bounce; /* referring directly to the animation's @keyframe declaration */
  animation-duration: 2s; /* don't forget to set a duration! */
}
_4 CSS, menyetel durasi melalui properti
.my-element {
  display: inline-block;
  margin: 0 0.5rem;

  animation: bounce; /* referring directly to the animation's @keyframe declaration */
  animation-duration: 2s; /* don't forget to set a duration! */
}
5 akan mengikuti rasio ini. Jadi, saat Anda mengubah durasi global, semua animasi akan merespons perubahan itu

Kelas berulang

Anda dapat mengontrol jumlah iterasi animasi dengan menambahkan kelas-kelas ini, seperti di bawah ini

$ yarn add animate.css
2Class NameDefault iteration count
.my-element {
  display: inline-block;
  margin: 0 0.5rem;

  animation: bounce; /* referring directly to the animation's @keyframe declaration */
  animation-duration: 2s; /* don't forget to set a duration! */
}
6
.my-element {
  display: inline-block;
  margin: 0 0.5rem;

  animation: bounce; /* referring directly to the animation's @keyframe declaration */
  animation-duration: 2s; /* don't forget to set a duration! */
}
7
.my-element {
  display: inline-block;
  margin: 0 0.5rem;

  animation: bounce; /* referring directly to the animation's @keyframe declaration */
  animation-duration: 2s; /* don't forget to set a duration! */
}
8
.my-element {
  display: inline-block;
  margin: 0 0.5rem;

  animation: bounce; /* referring directly to the animation's @keyframe declaration */
  animation-duration: 2s; /* don't forget to set a duration! */
}
9
/* This only changes this particular animation duration */
.animate__animated.animate__bounce {
  --animate-duration: 2s;
}

/* This changes all the animations globally */
:root {
  --animate-duration: 800ms;
  --animate-delay: 0.9s;
}
0
/* This only changes this particular animation duration */
.animate__animated.animate__bounce {
  --animate-duration: 2s;
}

/* This changes all the animations globally */
:root {
  --animate-duration: 800ms;
  --animate-delay: 0.9s;
}
1
/* This only changes this particular animation duration */
.animate__animated.animate__bounce {
  --animate-duration: 2s;
}

/* This changes all the animations globally */
:root {
  --animate-duration: 800ms;
  --animate-delay: 0.9s;
}
2
/* This only changes this particular animation duration */
.animate__animated.animate__bounce {
  --animate-duration: 2s;
}

/* This changes all the animations globally */
:root {
  --animate-duration: 800ms;
  --animate-delay: 0.9s;
}
3

Seperti kelas penundaan dan kecepatan, kelas

/* This only changes this particular animation duration */
.animate__animated.animate__bounce {
  --animate-duration: 2s;
}

/* This changes all the animations globally */
:root {
  --animate-duration: 800ms;
  --animate-delay: 0.9s;
}
_4 didasarkan pada properti
/* This only changes this particular animation duration */
.animate__animated.animate__bounce {
  --animate-duration: 2s;
}

/* This changes all the animations globally */
:root {
  --animate-duration: 800ms;
  --animate-delay: 0.9s;
}
5 dan memiliki jumlah iterasi default
.my-element {
  display: inline-block;
  margin: 0 0.5rem;

  animation: bounce; /* referring directly to the animation's @keyframe declaration */
  animation-duration: 2s; /* don't forget to set a duration! */
}
7. Anda dapat menyesuaikannya dengan menyetel properti
/* This only changes this particular animation duration */
.animate__animated.animate__bounce {
  --animate-duration: 2s;
}

/* This changes all the animations globally */
:root {
  --animate-duration: 800ms;
  --animate-delay: 0.9s;
}
5 ke nilai yang lebih panjang atau lebih pendek

$ yarn add animate.css
_3

Perhatikan bahwa

/* This only changes this particular animation duration */
.animate__animated.animate__bounce {
  --animate-duration: 2s;
}

/* This changes all the animations globally */
:root {
  --animate-duration: 800ms;
  --animate-delay: 0.9s;
}
_2 tidak menggunakan properti khusus apa pun, dan perubahan pada
/* This only changes this particular animation duration */
.animate__animated.animate__bounce {
  --animate-duration: 2s;
}

/* This changes all the animations globally */
:root {
  --animate-duration: 800ms;
  --animate-delay: 0.9s;
}
5 tidak akan berpengaruh. Jangan lupa untuk membaca bagian ini untuk memanfaatkan animasi berulang dengan sebaik-baiknya

Edit ini di GitHub

Praktik terbaik

Animasi dapat sangat meningkatkan UX antarmuka, tetapi penting untuk mengikuti beberapa panduan agar tidak berlebihan dan memperburuk pengalaman pengguna di web-things Anda. Mengikuti aturan berikut harus memberikan awal yang baik

Animasi yang bermakna

Anda harus menghindari menganimasikan elemen hanya untuk kepentingannya. Perlu diingat bahwa animasi harus memperjelas niat. Animasi seperti pencari perhatian (bounce, flash, pulse, dll) harus digunakan untuk menarik perhatian pengguna ke sesuatu yang istimewa di antarmuka Anda dan tidak hanya sebagai cara untuk menghadirkan "kilat" padanya

Masuk dan keluar animasi harus digunakan untuk mengorientasikan apa yang terjadi di antarmuka, dengan jelas menandakan bahwa itu sedang bertransisi ke keadaan baru

Itu tidak berarti bahwa Anda harus menghindari menambahkan kesenangan ke antarmuka, pastikan saja bahwa animasi tidak menghalangi pengguna Anda dan kinerja halaman tidak terpengaruh oleh penggunaan animasi yang berlebihan.

Jangan menganimasikan elemen besar

Hindari itu karena tidak akan memberi banyak nilai bagi pengguna dan mungkin hanya akan menimbulkan kebingungan. Selain itu, ada kemungkinan besar animasinya akan bermutu rendah, yang berpuncak pada UX yang buruk

Jangan menganimasikan elemen root

Menganimasikan tag

// All animations will take twice the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '2s');

// All animations will take half the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '.5s');
0 atau
// All animations will take twice the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '2s');

// All animations will take half the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '.5s');
1 dapat dilakukan, tetapi Anda harus menghindarinya. Ada beberapa laporan yang menunjukkan bahwa ini dapat memicu beberapa bug browser yang aneh. Selain itu, membuat seluruh halaman terpental tidak akan memberikan nilai bagus untuk UX Anda. Jika Anda memang membutuhkan efek semacam ini, bungkus halaman Anda dalam sebuah elemen dan animasikan, seperti ini

$ yarn add animate.css
_4

Animasi tak terbatas harus dihindari

Meskipun Animasi. css menyediakan kelas utilitas untuk mengulang animasi, termasuk yang tak terbatas, Anda harus menghindari animasi tanpa akhir. Itu hanya akan mengganggu pengguna Anda dan mungkin mengganggu sebagian besar dari mereka. Jadi, gunakan dengan bijak

Pikirkan keadaan awal dan akhir elemen Anda

Semua Animasi. animasi css menyertakan properti CSS yang disebut

// All animations will take twice the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '2s');

// All animations will take half the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '.5s');
2, yang mengontrol status elemen sebelum dan sesudah animasi. Anda dapat membaca selengkapnya di sini. Menghidupkan. css default ke
// All animations will take twice the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '2s');

// All animations will take half the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '.5s');
_3, tetapi Anda dapat mengubahnya sesuai kebutuhan Anda

Jangan nonaktifkan kueri media // All animations will take twice the time to accomplish document.documentElement.style.setProperty('--animate-duration', '2s'); // All animations will take half the time to accomplish document.documentElement.style.setProperty('--animate-duration', '.5s'); _4

Sejak versi 3. 7. 0 Menghidupkan. css mendukung kueri media

// All animations will take twice the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '2s');

// All animations will take half the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '.5s');
4 yang menonaktifkan animasi berdasarkan preferensi sistem OS pada browser yang mendukung (sebagian besar browser saat ini mendukungnya). Ini adalah fitur aksesibilitas penting dan tidak boleh dinonaktifkan. Ini dibangun ke dalam browser untuk membantu orang dengan gangguan vestibular dan kejang. Anda dapat membaca selengkapnya di sini. Jika benda web Anda membutuhkan animasi untuk berfungsi, peringatkan pengguna, tetapi jangan nonaktifkan fitur tersebut. Anda dapat melakukannya dengan mudah hanya dengan CSS. Ini contoh sederhana

Lihat kueri media Pen Prefers-reduce-motion oleh Elton Mesquita (@eltonmesquita) di CodePen

Gotcha

Anda tidak dapat menganimasikan elemen sebaris

Meskipun beberapa browser dapat menganimasikan elemen sebaris, ini bertentangan dengan spesifikasi animasi CSS dan akan merusak beberapa browser atau akhirnya berhenti bekerja. Selalu animasikan elemen level blok atau blok sebaris (kontainer kotak dan fleksibel serta anak-anak juga merupakan elemen level blok). Anda dapat menyetel elemen ke

// All animations will take twice the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '2s');

// All animations will take half the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '.5s');
_6 saat menganimasikan elemen level sebaris

Meluap

Sebagian besar Animasi. animasi css akan memindahkan elemen melintasi layar dan mungkin membuat bilah gulir di web Anda. Ini dapat dikelola menggunakan properti

// All animations will take twice the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '2s');

// All animations will take half the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '.5s');
7. Tidak ada resep kapan dan di mana menggunakannya, tetapi ide dasarnya adalah menggunakannya di induk yang memegang elemen animasi. Terserah Anda untuk mengetahui kapan dan bagaimana menggunakannya, panduan ini dapat membantu Anda memahaminya

Interval antara pengulangan

Sayangnya, saat ini hal ini tidak mungkin dilakukan dengan CSS murni. Anda harus menggunakan Javascript untuk mencapai hasil ini

Edit ini di GitHub

Penggunaan dengan Javascript

Anda dapat melakukan banyak hal lain dengan animate. css saat Anda menggabungkannya dengan Javascript. Contoh sederhana

$ yarn add animate.css
_5

Anda dapat mendeteksi kapan animasi berakhir

$ yarn add animate.css
_6

atau mengubah durasinya

$ yarn add animate.css
_7

Anda juga dapat menggunakan fungsi sederhana untuk menambahkan kelas animasi dan menghapusnya secara otomatis

$ yarn add animate.css
_8

Dan gunakan seperti ini

$ yarn add animate.css
_9

Jika Anda kesulitan memahami fungsi sebelumnya, lihat const, classList, fungsi panah, dan Janji

Edit ini di GitHub

Migrasi dari v3. x dan Bawah

Menghidupkan. css v4 membawa beberapa peningkatan, peningkatan animasi, dan animasi baru, yang membuatnya layak untuk ditingkatkan. Namun, itu juga datang dengan perubahan besar. kami telah menambahkan awalan untuk semua Animate. kelas css - default ke

import 'animate.css';
_9 - jadi migrasi langsung tidak mungkin dilakukan

Tapi jangan takut. Meskipun build default,

// All animations will take twice the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '2s');

// All animations will take half the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '.5s');
_9, membawa awalan
import 'animate.css';
9 kami juga menyediakan file
Example
1 yang tidak membawa awalan sama sekali, seperti versi sebelumnya (3. x dan di bawah)

Jika Anda menggunakan bundler, perbarui impor Anda

dari

import 'animate.css';
0

ke

import 'animate.css';
1

Perhatikan bahwa bergantung pada konfigurasi proyek Anda, ini mungkin sedikit berubah

Jika menggunakan CDN, perbarui tautan di HTML Anda

dari

import 'animate.css';
2

ke

import 'animate.css';
_3

Dalam kasus proyek baru, sangat disarankan untuk menggunakan versi awalan default karena akan memastikan bahwa Anda tidak akan memiliki kelas yang bertentangan dengan proyek Anda. Selain itu, di versi yang lebih baru, kami mungkin memutuskan untuk menghentikan file

Example
1

Edit ini di GitHub

Build Kustom

Pembuatan khusus tidak dimungkinkan dari folder node_modules karena kami tidak mengirimkan alat bangunan di modul npm

Menghidupkan. css diberdayakan oleh npm, postcss + postcss-preset-env, yang berarti Anda dapat membuat build kustom dengan cukup mudah, menggunakan CSS masa depan dengan fallback yang tepat

Pertama-tama, Anda memerlukan Node dan semua dependensi lainnya

import 'animate.css';
_4

Selanjutnya, jalankan

Example
_3 untuk mengkompilasi build kustom Anda. Tiga file akan dihasilkan

  • Example
    _4. build mentah, mudah dibaca dan tanpa pengoptimalan apa pun
  • // All animations will take twice the time to accomplish
    document.documentElement.style.setProperty('--animate-duration', '2s');
    
    // All animations will take half the time to accomplish
    document.documentElement.style.setProperty('--animate-duration', '.5s');
    
    _9. bangunan mini yang siap untuk diproduksi
  • Example
    _1. build yang diperkecil siap untuk produksi tanpa awalan kelas. Ini seharusnya hanya digunakan sebagai jalur mudah untuk migrasi

Misalnya, jika Anda hanya akan menggunakan beberapa animasi "pencari perhatian", cukup edit file

Example
7, hapus setiap
Example
8 dan yang ingin Anda gunakan

import 'animate.css';
5

Sekarang, jalankan saja

Example
_3 dan build Anda yang sangat optimal akan dibuat di akar proyek

Mengubah awalan default

Cukup mudah untuk mengubah awalan animate pada build kustom Anda. Ubah properti

/* All delay classes will take 2x longer to start */
:root {
  --animate-delay: 2s;
}

/* All delay classes will take half the time to start */
:root {
  --animate-delay: 0.5s;
}
_0
/* All delay classes will take 2x longer to start */
:root {
  --animate-delay: 2s;
}

/* All delay classes will take half the time to start */
:root {
  --animate-delay: 0.5s;
}
1 di file
/* All delay classes will take 2x longer to start */
:root {
  --animate-delay: 2s;
}

/* All delay classes will take half the time to start */
:root {
  --animate-delay: 0.5s;
}
2 dan bangun kembali perpustakaan dengan
Example
3

import 'animate.css';
6

kemudian

import 'animate.css';
7

Mudah sekali

Edit ini di GitHub

Aksesibilitas

Menghidupkan. css mendukung kueri media

// All animations will take twice the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '2s');

// All animations will take half the time to accomplish
document.documentElement.style.setProperty('--animate-duration', '.5s');
4 sehingga pengguna dengan kepekaan gerakan dapat menyisih dari animasi. Pada platform yang didukung (saat ini semua browser dan OS utama, termasuk seluler), pengguna dapat memilih "kurangi gerakan" pada preferensi sistem operasi mereka, dan itu akan mematikan transisi CSS untuk mereka tanpa perlu kerja lebih lanjut

Edit ini di GitHub

Tim inti

Daniel EdenElton MesquitaWaren GonzagaAnimate. css CreatorMaintainerCore Contributor

Edit ini di GitHub

Lisensi dan Berkontribusi

Menghidupkan. css dilisensikan di bawah Lisensi Hipokrates

Berkontribusi

Permintaan tarik adalah cara untuk pergi ke sini. Kami hanya memiliki dua aturan untuk mengirimkan permintaan penarikan. cocok dengan konvensi penamaan (camelCase, dikategorikan [memudar, memantul, dll. ]) dan mari kita lihat demo animasi yang dikirim dalam pena. Yang terakhir itu penting

Kode etik

Proyek ini dan semua orang yang berpartisipasi di dalamnya diatur oleh Kode Etik Perjanjian Kontributor. Dengan berpartisipasi, Anda diharapkan menjunjung tinggi kode ini. Silakan laporkan perilaku yang tidak dapat diterima ke animate@eltonmesquita. com

Apa saja delapan properti animasi?

Properti penyusun .
animasi-penundaan
animasi-arah
durasi animasi
mode-pengisian-animasi
animasi-iterasi-jumlah
nama-animasi
animasi-play-state
animasi-waktu-fungsi

Animasi apa yang dapat Anda lakukan di CSS?

Jenis Animasi CSS .
Animasi Teks CSS. Tipografi animasi dapat langsung menarik perhatian pengunjung Anda. .
Animasi Warna CSS. .
Animasi Geser. .
Animasi Putar CSS. .
Animasi Cahaya CSS. .
Animasi Bouncing CSS. .
Animasi Fade-in CSS. .
Animasi CSS Hover

Apa itu animasi CSS

Properti CSS nama-animasi menentukan nama dari satu atau beberapa at-rules @keyframes yang menjelaskan animasi untuk diterapkan ke elemen . Beberapa at-rules @keyframe ditetapkan sebagai daftar nama yang dipisahkan koma. Jika nama yang ditentukan tidak cocok dengan aturan @keyframe mana pun, tidak ada properti yang dianimasikan.

Ada berapa jenis animasi di CSS?

fungsi pengaturan waktu animasi . penundaan animasi . penghitungan-animasi-iterasi . arah-animasi .