[CSS] Bài 16 – Các Hoạt Ảnh Tự Tạo

Trong bài này, chúng ta sẽ nói về việc tạo ra các hoạt ảnh phức tạp. Các ví dụ trong bài viết này yêu cầu các trình duyệt web được cập nhật với phiên bản được phát hành gần đây. Thuộc tính animation Hãy bắt đầu với một ví dụ đơn giản. Ở đây chúng

Trong bài này, chúng ta sẽ nói về việc tạo ra các hoạt ảnh phức tạp. Các ví dụ trong bài viết này yêu cầu các trình duyệt web được cập nhật với phiên bản được phát hành gần đây.

Thuộc tính animation

Hãy bắt đầu với một ví dụ đơn giản. Ở đây chúng ta có một hoạt ảnh di chuyển một chiếc hộp từ bên trái sang bên phải và màu nền của chiếc hộp cũng sẽ thay đổi dần từ đỏ sang xanh.

animation.css

box{width: 100px;height: 100px;position: relative;background-color: Black;animation: moveAndChangeBackGround 3s linear 2s;}@keyframes moveAndChangeBackGround{from{left: 0;background-color: Crimson;}to{left: 50%;background-color: RoyalBlue;}}

animation.html

<!doctypehtml><html><head><metacharset="utf-8"><title>Animation</title><linkrel="stylesheet"href="animation.css"></head><body><divclass="box"></div></body></html>

Xem kết quả hiển thị

Như bạn thấy thì thuộc tính animation được viết trong ví dụ ở trên trông rất giống với thuộc tính transition. Cú pháp của animation cũng có 4 giá trị là: tên hoạt ảnh, thời gian hoàn thành, kiểu phân bố tốc độ thực hiện hoạt ảnh, và thời gian trễ trước khi bắt đầu thực hiện hoạt ảnh. Điểm mới mẻ ở đây là tên hoạt ảnh. Chúng ta có thể đặt cho các hoạt ảnh những cái tên đẹp. 😄

Tuy nhiên thì đó không phải là tất cả. Chúng ta đã thấy là hoạt ảnh được tự động thực hiện khi trang web được tải xong; Và sau khi hoạt ảnh hoàn thành thì vị trí và màu nền của chiếc hộp đều đượt thiết lập lại như trạng thái ban đầu. Đây là những điểm khác biệt chính giữa animationtransition mà chúng ta có thể nói ở thời điểm hiện tại. Hãy xem chúng ta còn những gi tiếp theo.

Lặp hoạt ảnh

Tính năng này cũng không có ở transition. Chúng ta có thể tạo ra các animation được lặp lại nhiều lần. Mặc định thì số lần lặp của hoạt ảnh được thiết lập bởi luật CSS sau:

animation-iteration-count: 1;

Điều này có nghĩa là mặc định thì các hoạt ảnh sẽ chỉ được thực hiện 1 lần duy nhất. Chúng ta cũng có thể thiết lập số lần lặp với giá trị infinite hoạt ảnh được lặp vô hạn.

Hoạt ảnh nhiều pha

Hãy cùng xem lại ví dụ ở phần đầu tiên. Bên trong khối @keyframes chúng ta có hoạt ảnh được định nghĩa với 2 trạng thái stoppoint. Chúng ta cũng có thể sử dụng 0%100% thay vì fromto. Bạn có đoán được điều này có ý nghĩa gì không? 😄

Chúng ta có thể thiết lập nhiều điểm stoppoint và tạo ra các hoạt ảnh phức tạp với nhiều chặng. Hãy cập nhật code CSS của chúng ta để tạo ra một hoạt ảnh lặp vô hạn với chuyển động phức tạp.

animation.css

.box{width: 100px;height: 100px;border-radius: 50%;position: relative;background-color: Black;animation: moveAndChangeBackGround 9s linear 2s;animation-iteration-count: infinite;}@keyframes moveAndChangeBackGround{0%{background-color: Orange;top: 0;left: 0;}25%{background-color: ForestGreen;top: 240px;left: 420px;}50%{background-color: RoyalBlue;top:     0;left: 420px;}75%{background-color: Crimson;top: 240px;left:     0;}100%{background-color: Orange;top: 0;left: 0;}}/* @keyframes */

Xem kết quả hiển thị

Trạng thái phát

Mặc định thì các hoạt ảnh sẽ được tự động phát khi trang web của chúng ta được tải xong. Điều đó có nghĩa là không có sự tương tác với người dùng ở đây. Tuy nhiên thì đôi khi chúng ta sẽ muốn để người dùng có thể tắt/bật các hoạt ảnh. Điều này có thể được thực hiện bằng cách thay đổi giá trị của thuộc tính animation-play-state.

animation-play-state: running /* paused */;

Hãy cập nhật các đoạn code HTML và CSS của chúng ta một chút để dùng thử thuộc tính này.

animation.html

<inputid="toggler"type="checkbox"checked> Play/Paused
<divclass="box"></div>

animation.css

/* ... */.box{animation-play-state: paused;}#toggler:checked + .box{animation-play-state: running;}

Xem kết quả hiển thị

Bài viết về thuộc tính animation của chúng ta tới đây là kết thúc. Tới đây thì bạn đã có thể nghĩ tới việc bổ sung thêm tính năng tự động chuyển ảnh cho slide ảnh mà chúng ta đã xây dựng trong bài trước. Tính năng này chỉ cần hoạt động khi trang web mới được tải xong và chưa có tương tác gì từ người dùng. Ngay khi người dùng click chuột chuyển tới xem một ảnh bất kỳ thì tính năng tự động phát có thể được tắt hẳn và không cần kích hoạt trở lại.

Trong bài tiếp theo, chúng ta sẽ nói về các hàm hỗ trợ một số tính năng tính toán đơn giản trong CSS.

(Sắp đăng tải) [CSS] Bài 17 – Các Hàm Chức Năng

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ