277 of 313 menu

Thuộc tính animation-fill-mode

Thuộc tính animation-fill-mode thiết lập vị trí dừng của animation sau khi kết thúc. Mặc định, animation sẽ trở về giá trị ban đầu và điều này có thể trông không được đẹp lắm.

Cú pháp

bộ chọn { animation-fill-mode: backwards | forwards | both | none; }

Giá trị

Giá trị Mô tả
none Nếu có thiết lập độ trễ animation - thì trong suốt thời gian trễ phần tử sẽ đứng yên tại chỗ, sau đó nhảy tới khung hình 0%. Sau khi animation kết thúc, phần tử sẽ không dừng lại ở trạng thái nơi nó kết thúc, mà nhảy về trạng thái ban đầu.
backwards Buộc phần tử di chuyển ngay sau khi trang tải xong tới khung hình 0%, ngay cả khi có thiết lập độ trễ animation-delay, và giữ nguyên ở đó cho đến khi animation bắt đầu. Sau khi animation kết thúc, phần tử không dừng lại ở trạng thái nơi nó kết thúc, mà nhảy về trạng thái ban đầu.
forwards Chỉ định cho trình duyệt rằng sau khi animation kết thúc, phần tử sẽ dừng lại ở trạng thái nơi nó kết thúc.
both Bao gồm cả backwards và forwards - sau khi trang tải xong phần tử sẽ được đặt về khung hình 0%, và sau khi animation kết thúc phần tử sẽ dừng lại ở nơi nó kết thúc.

Giá trị mặc định: none.

Ví dụ . Giá trị none

Trong ví dụ này margin-left được thiết lập là 300px cho phần tử, còn cho khung hình đầu tiên của animation - là 0px. Vì không có độ trễ animation-delay, nên phần tử sau khi trang tải xong sẽ đứng ở 0px, chứ không phải ở 300px. Ngoài ra, animation sau khi kết thúc sẽ nhảy về giá trị ban đầu:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: none; animation-delay: 0s; animation-duration: 3s; animation-name: move; animation-iteration-count: infinite; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Ví dụ . Giá trị none

Trong ví dụ này margin-left được thiết lập là 300px cho phần tử, còn cho khung hình đầu tiên của animation - là 0px. Đồng thời, phần tử được thiết lập độ trễ animation-delay3 giây, do đó phần tử sau khi trang tải xong sẽ đứng ở 300px, chứ không phải ở 0px, và sẽ đứng đó 3 giây sau khi animation bắt đầu rồi nhảy tới 0px - và animation sẽ bắt đầu từ đó. Ngoài ra, animation sau khi kết thúc sẽ nhảy về giá trị ban đầu:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: none; animation-delay: 0s; animation-duration: 3s; animation-name: move; animation-iteration-count: infinite; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Ví dụ . Giá trị backwards

Trong ví dụ này margin-left được thiết lập là 300px cho phần tử, còn cho khung hình đầu tiên của animation - là 0px. Đồng thời, phần tử được thiết lập animation-fill-mode là giá trị backwards, do đó phần tử sau khi trang tải xong sẽ đứng ở 0px, chứ không phải ở 300px, như đã từng xảy ra với animation-fill-mode là giá trị none. Ngoài ra, animation sau khi kết thúc sẽ nhảy về giá trị ban đầu:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: backwards; animation-delay: 0s; animation-duration: 3s; animation-name: move; animation-iteration-count: infinite; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Ví dụ . Giá trị none và số lần lặp bằng 1

Trong ví dụ này margin-left được thiết lập là 300px cho phần tử, còn cho khung hình đầu tiên của animation - là 0px. Đồng thời, phần tử được thiết lập độ trễ animation-delay3 giây, do đó phần tử sau khi trang tải xong sẽ đứng ở 300px, chứ không phải ở 0px, và sẽ đứng đó 3 giây sau khi animation bắt đầu rồi nhảy tới 0px - và animation sẽ bắt đầu từ đó. Vì animation-fill-mode được thiết lập là giá trị none, nên sau khi phát xong animation phần tử sẽ trở về giá trị ban đầu:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: none; animation-delay: 3s; animation-duration: 3s; animation-name: move; animation-iteration-count: 1; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Ví dụ . Giá trị forwards và số lần lặp bằng 1

Trong ví dụ này animation-fill-mode được thiết lập là giá trị forwards, còn số lần lặp animation - là 1. Sau khi phát xong animation, phần tử sẽ dừng lại ở vị trí mà animation kết thúc, chứ không nhảy về điểm xuất phát ban đầu.

Ngoài ra, margin-left được thiết lập là 300px cho phần tử, còn cho khung hình đầu tiên của animation - là 0px. Đồng thời phần tử được thiết lập độ trễ animation-delay3 giây, do đó phần tử sau khi trang tải xong sẽ đứng ở 300px, chứ không phải ở 0px, và sẽ đứng đó 3 giây sau khi animation bắt đầu, rồi nhảy tới 0px - và animation sẽ bắt đầu từ đó:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: forwards; animation-delay: 3s; animation-duration: 3s; animation-name: move; animation-iteration-count: 1; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Ví dụ . Giá trị both và số lần lặp bằng 1

Trong ví dụ này animation-fill-mode được thiết lập là giá trị both, còn số lần lặp animation - là 1. Sau khi trang tải xong, phần tử sẽ đứng ở khung hình đầu tiên của animation (ở 0px, chứ không phải ở 300px), còn sau khi phát xong animation phần tử sẽ dừng lại ở vị trí mà animation kết thúc, chứ không nhảy về điểm xuất phát ban đầu:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: both; animation-delay: 3s; animation-duration: 3s; animation-name: move; animation-iteration-count: 1; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Xem thêm

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối