Thời gian vừa qua chắc hẳn các bạn đã nghe nhiều về game Flappy Bird trên di động làm mưa làm gió trên toàn thế giới, do lập trình viên Nguyễn Hà Đông thực hiện, và hình ảnh chú chim mỏ đỏ chắc đã “ám ảnh” các bạn trong suốt những ngày qua. Trong bài viết hôm nay, mình sẽ hướng dẫn các bạn làm thế nào để có một vật thể bay khắp trang web với CSS3 (mình đem con flappy bird ra làm ví dụ để giúp các bạn “ám ảnh” hơn nữa thôi).
Flappy Bird gif
HTML
CSS
Animation trong CSS3
Để tạo ra các animation trong CSS3, bạn sẽ phải hiểu về quy tắc @keyframes.
Quy tắc @keyframes là nơi mà animation được tạo ra. Chỉ định một style CSS bên trong quy tắc @keyframes và animation sẽ dần thay đổi từ style hiện tại sang style mới.
Một animation là một hiệu ứng cho phép một yếu tố dần dần thay đổi từ một style này qua một style khác. Bạn có thể thay đổi nhiều thành nhiều style mà bạn muốn.
Xác định khi nào thì sự thay đổi sẽ xảy ra theo phần trăm ( % ), hoặc các từ khóa “from” và “to”, nó cũng giống như 0% và 100% vậy.
0% là lúc bắt đầu của animation, 100% là khi animation hoàn tất. Để các trình duyệt hỗ trợ tốt nhất, bạn nên luôn định nghĩa cả 0% và 100%.
Theo ví dụ trên, animation flappybirdAnimation được tạo ra và có sự thay đổi từ 0% (from) đến 100% (to).
Khi các animation được tạo ra trong @keyframes, bạn cần phải gọi nó trong selector, nếu không các animation sẽ không có hiệu lực.
Ví dụ:
-webkit-animation: flappybirdAnimation infinite 15000ms linear 3s;
-moz-animation: flappybirdAnimation infinite 15000ms linear 3s;
-ms-animation: flappybirdAnimation infinite 15000ms linear 3s;
-o-animation: flappybirdAnimation infinite 15000ms linear 3s;
Hỗ Trợ Trình Duyệt
Internet Explorer 10, Firefox, and Opera hỗ trợ quy tắc @keyframes và các animation property.
Chrome and Safari yêu cầu prefix -webkit-.
Lưu ý: Internet Explorer 9 và các phiên bản trước đó không hỗ trợ @keyframes hoặc animation property.