Theo tôi, jQuery's animate
hơi bị lạm dụng so với CSS3 transition
, nó thực hiện hoạt ảnh như vậy trên bất kỳ thuộc tính 2D hoặc 3D nào. Ngoài ra, tôi e rằng, việc để nó vào trình duyệt và bỏ qua lớp có tên JavaScript có thể dẫn đến nguồn CPU dự trữ - đặc biệt, khi bạn muốn bùng nổ với các hình ảnh động. Vì vậy, tôi muốn có các hình ảnh động ở đó định nghĩa kiểu, vì bạn xác định chức năng bằng JavaScript . Bạn càng đưa nhiều bản trình bày vào JavaScript, bạn càng gặp nhiều vấn đề sau này.
Tất cả những gì bạn phải làm là sử dụng addClass
phần tử bạn muốn tạo hoạt ảnh, nơi bạn đặt một lớp có transition
thuộc tính CSS . Bạn chỉ cần "kích hoạt" hoạt ảnh , hoạt ảnh này vẫn được triển khai trên lớp bản trình bày thuần túy .
.js
$("#element").addClass("Animate");
document.getElementById("element").className += "Animate";
Người ta có thể dễ dàng loại bỏ một lớp bằng jQuery hoặc loại bỏ một lớp không có thư viện .
.css
#element{
color : white;
}
#element.Animate{
transition : .4s linear;
color : red;
-webkit-transform : rotate(90deg);
}
.html
<span id="element">
Text
</span>
Đây là một giải pháp nhanh chóng và tiện lợi cho hầu hết các trường hợp sử dụng.
Tôi cũng sử dụng điều này khi tôi muốn triển khai một kiểu khác (thuộc tính CSS thay thế) và muốn thay đổi kiểu ngay lập tức bằng hoạt ảnh .5s toàn cục. Tôi thêm một lớp mới vào BODY
, trong khi có CSS thay thế trong một biểu mẫu như sau:
.js
$("BODY").addClass("Alternative");
.css
BODY.Alternative #element{
color : blue;
transition : .5s linear;
}
Bằng cách này, bạn có thể áp dụng các kiểu khác nhau với hoạt ảnh mà không cần tải các tệp CSS khác nhau. Bạn chỉ liên quan đến JavaScript để đặt a class
.