animation-duration
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
* Some parts of this feature may have varying levels of support.
Thuộc tính animation-duration CSS đặt độ dài thời gian một animation cần để hoàn thành một chu kỳ.
Thường thuận tiện hơn khi sử dụng thuộc tính viết tắt animation để đặt tất cả các thuộc tính animation cùng một lúc.
Try it
animation-duration: 750ms;
animation-duration: 3s;
animation-duration: 0s;
<section class="flex-column" id="default-example">
<div class="animating" id="example-element"></div>
<button id="play-pause">Play</button>
</section>
#example-element {
animation-direction: alternate;
animation-iteration-count: infinite;
animation-name: slide;
animation-play-state: paused;
animation-timing-function: ease-in;
background-color: #1766aa;
border-radius: 50%;
border: 5px solid #333333;
color: white;
height: 150px;
margin: auto;
margin-left: 0;
width: 150px;
}
#example-element.running {
animation-play-state: running;
}
#play-pause {
font-size: 2rem;
}
@keyframes slide {
from {
background-color: orange;
color: black;
margin-left: 0;
}
to {
background-color: orange;
color: black;
margin-left: 80%;
}
}
const el = document.getElementById("example-element");
const button = document.getElementById("play-pause");
button.addEventListener("click", () => {
if (el.classList.contains("running")) {
el.classList.remove("running");
button.textContent = "Play";
} else {
el.classList.add("running");
button.textContent = "Pause";
}
});
Cú pháp
/* Animation đơn */
animation-duration: auto; /* Mặc định */
animation-duration: 6s;
animation-duration: 120ms;
/* Nhiều animation */
animation-duration: 1.64s, 15.22s;
animation-duration: 10s, 35s, 230ms;
/* Giá trị toàn cục */
animation-duration: inherit;
animation-duration: initial;
animation-duration: revert;
animation-duration: revert-layer;
animation-duration: unset;
Giá trị
auto-
Đối với animation dựa trên thời gian,
autotương đương với giá trị0s(xem bên dưới). Đối với CSS scroll-driven animations,autolấp đầy toàn bộ timeline bằng animation. <time>-
Thời gian để animation hoàn thành một chu kỳ. Có thể được chỉ định bằng giây (
s) hoặc mili giây (ms). Giá trị phải là dương hoặc bằng không và đơn vị là bắt buộc.Nếu không có giá trị nào được cung cấp, giá trị mặc định
0sđược sử dụng, trong trường hợp này animation vẫn thực thi (các sự kiệnanimationStartvàanimationEndđược kích hoạt). Liệu animation có hiển thị khi duration là0shay không sẽ phụ thuộc vào giá trị củaanimation-fill-mode, như được giải thích bên dưới:- Nếu
animation-fill-modeđược đặt thànhbackwardshoặcboth, frame đầu tiên của animation như được định nghĩa bởianimation-directionsẽ được hiển thị trong thời gian đếm ngượcanimation-delay. - Nếu
animation-fill-modeđược đặt thànhforwardshoặcboth, frame cuối cùng của animation sẽ được hiển thị, như được định nghĩa bởianimation-direction, sau khianimation-delayhết hạn. - Nếu
animation-fill-modeđược đặt thànhnone, animation sẽ không có hiệu ứng hiển thị.
- Nếu
Note:
Giá trị âm là không hợp lệ, khiến khai báo bị bỏ qua. Một số triển khai tiền tố sớm có thể coi chúng giống như 0s.
Note:
Khi bạn chỉ định nhiều giá trị được phân tách bằng dấu phẩy trên thuộc tính animation-*, chúng được áp dụng cho các animation theo thứ tự xuất hiện của animation-name. Đối với các tình huống mà số lượng animation và giá trị thuộc tính animation-* không khớp, hãy xem Setting multiple animation property values.
Note:
Khi tạo CSS scroll-driven animations, việc chỉ định giá trị animation-duration bằng giây hoặc mili giây thực sự không có ý nghĩa. Trong các thử nghiệm, có vẻ không có hiệu lực đối với animation scroll progress timeline, trong khi đối với animation view progress timeline có vẻ đẩy animation xảy ra gần cuối timeline hơn. Tuy nhiên, Firefox yêu cầu phải đặt animation-duration để áp dụng animation thành công. Do đó, bạn nên đặt animation-duration thành 1ms để animation hoạt động trong Firefox, nhưng hiệu ứng không bị thay đổi quá nhiều bởi điều đó.
Định nghĩa hình thức
| Initial value | 0s |
|---|---|
| Applies to | all elements, ::before and ::after pseudo-elements |
| Inherited | no |
| Computed value | as specified |
| Animation type | Not animatable |
Cú pháp hình thức
animation-duration =
[ auto | <time [0s,∞]> ]#
Ví dụ
>Đặt thời lượng animation
Animation này có animation-duration là 0.7 giây.
HTML
<div class="box"></div>
CSS
.box {
background-color: rebeccapurple;
border-radius: 10px;
width: 100px;
height: 100px;
}
.box:hover {
animation-name: rotate;
animation-duration: 0.7s;
}
@keyframes rotate {
0% {
transform: rotate(0);
}
100% {
transform: rotate(360deg);
}
}
Kết quả
Di chuột qua hình chữ nhật để bắt đầu animation.
Xem CSS animations để biết thêm ví dụ.
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| CSS Animations Level 1> # animation-duration> |
Tương thích trình duyệt
Xem thêm
- Using CSS animations
- JavaScript
AnimationEventAPI - Các thuộc tính animation liên quan khác:
animation,animation-composition,animation-delay,animation-direction,animation-fill-mode,animation-iteration-count,animation-name,animation-play-state,animation-timeline,animation-timing-function