Trong bài viết này, mình muốn cung cấp những phần quan trọng nhất để bạn có thể tạo hiệu ứng thú vị với CSS Animation
Design design with CSS Animation Mình cũng làm một ví dụ nhỏ ở cuối bài viết này để các bạn có thể tham khảo lục mục 1. Các thuộc tính Animation 2. Tìm hiểu về Keyframes 3. Tạo CSS Animation 4. Ví dụ CSS Animation thực tế 1. Các thuộc tính AnimationViệc thiết lập hoạt ảnh được thực hiện bằng cách gán thuộc tính hoạt ảnh trong khi viết css cho phần tử hoặc thuộc tính phụ của nó Để bắt đầu tạo ra các hiệu ứng chuyển động thú vị với CSS Animation, bạn phải biết cách thiết lập thời lượng (thời lượng), thời gian (thời gian), tốc độ (độ trễ) và một số thứ khác Để làm quen với các thuộc tính này và hiểu chúng có thể làm được gì, hãy cùng xem chi tiết bên dưới đây Thuộc tính #1. div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 3 - Xác định thời gian cho một chu kỳ chuyển động, thường được đặt thành div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 4 hoặc div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 5Ví dụ. Chúng ta muốn thiết lập chu kỳ chuyển động là 4s, vậy thì chúng ta sẽ thiết lập như sau. div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 6Thuộc tính #2. div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 7 - Xác định khoảng thời gian giữa thời điểm tải xong phần tử và bắt đầu chu kỳ chuyển động đầu tiên, nó cũng được đặt là div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 4 hoặc div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 5Ví dụ. Chúng ta muốn sau khi tải xong phần tử thì đợi 2 giây sau mới bắt đầu chu kỳ chuyển động đầu tiên. div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 0Thuộc tính #3. div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 0 - Xác định có bao nhiêu chu kỳ chuyển động sẽ được lặp lại, nó có thể được đặt thành div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 1 nếu bạn muốn nó lặp lại mãi mãiVí dụ. Chúng ta muốn lặp lại chuyển động 3 lần. div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 2Thuộc tính #4. div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 3 - Xác định xem chuyển động sẽ thay đổi hướng hoặc bắt đầu ở cùng một nơi mỗi lần sau khi đặt lạiIt is could not be set as a in the following words div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 4 (default). Chuyển động tiến về phía trước được bắt đầu từ div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 5 đến div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 6 trong một chu kỳ
div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 7. Chuyển động bắt đầu từ div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 5 đến div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 6 và chu kỳ tiếp theo là từ div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 6 đến div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 5
div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 32. Move to redirect, from div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 6 to div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 5
div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 35. Chuyển động chu kỳ đầu tiên được phát từ div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 6 đến div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 5 và chu kỳ thứ hai sẽ được phát từ div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 5 đến div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 6
Thuộc tính #5. div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 40 - Xác định tên của div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 41Những thuộc tính ở bên trên mà mình mô tả ở trên là phổ biến nhất và được sử dụng thường xuyên nhất Nhưng cũng có một vài thuộc tính ít phổ biến hơn cũng được sử dụng để thiết lập chuyển động Cùng lướt qua một chút nhé Thuộc tính #6. div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 42 -Xác định thời gian của các chuyển động, có nghĩa là thiết lập đường cong gia tốc để xác định chuyển động qua các khung hình chínhdiv {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 48 - Cho phép bạn xác định các giá trị của riêng mình trong một hàm div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 49
Thuộc tính #7. div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 50 - Xác định các giá trị được áp dụng cho phần tử trước khi chuyển động và sau khi nó được thực thiThuộc tính #8. div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 51 - Cho phép tạm dừng và khởi động lại chuỗi chuyển độngĐược, Bây giờ bạn đã biết các thuộc tính CSS Animation để làm gì, vì thế chúng ta có thể chuyển sang bước tiếp theo, đó là div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 412. Tìm hiểu về KeyframeĐể xác định hành động tùy chỉnh cho phần tử, bạn phải thiết lập một chuỗi hành động Lúc này, bạn sẽ sử dụng quy tắc div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 41Trong @keyframe, chúng tôi chỉ định kiểu cho phần tử trong thời gian xuất cụ thể Chúng ta đang xác định kiểu ít nhất hai bước We can also change Tất nhiên, vì có nhiều khả năng nên bạn sẽ xác định nhiều hơn hai bước, vì vậy chúng tôi sử dụng Tỷ lệ phần trăm để xác định kiểu cho từng phần của chu kỳ chuyển động Chúng ta hãy xem ví dụ về @keyframe, trong đó chúng ta sẽ xác định một keyframe để thay đổi chiều cao của phần tử div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 9Vì vậy, trong ví dụ trên, chúng tôi đã tạo ra một khung hình chính được gọi là div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 55Nó thay đổi chiều cao của phần tử từ div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 56, đến giữa các chu kỳ thì tăng lên đến div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 57. Sau đó tiếp tục tăng đến div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 58 khi hết chu kỳmẹo. Thay vì chiều cao thay đổi ( div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 59), bạn có thể sử dụng thuộc tính div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 60. Vừa mượt mà hơn vừa phải hiệu quả tốt hơnTrong bước tiếp theo, chúng tôi sẽ thêm chuyển động này vào phần tử HTML để bạn thấy cách nó hoạt động 3. Tạo CSS AnimationChúng ta có thể tạo một hình ảnh động bằng cách sử dụng viết tắt hoặc gán giá trị cho từng thuộc tính To set it into a line, các thuộc tính sẽ được sắp xếp lần lượt như sau div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 61. div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 40, div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 3, div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 42, div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 7, ________ 00, ________ 03, ________ 350, ________ 351 ;Nếu bạn là người mới bắt đầu tìm hiểu về CSS và CSS Animation, xin giới thiệu bạn gán giá trị riêng cho từng thuộc tính để dễ dàng nắm bắt Ghi chú. Như ví dụ bên dưới
Ngoài ra, điều đáng ghi nhớ là div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 3 phải được thiết lập để làm cho hoạt ảnh hoạt độngNếu bạn không thiết lập div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 3, thì bạn sẽ không thấy hiệu ứng gì cảBây giờ, hãy thử thiết lập hoạt hình cho phần tử, như sau div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
}
Trong đoạn mã trên, chúng ta chỉ định một div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 61 cho phần tử div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 73div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 75 có nghĩa là chuyển động sẽ kéo dài div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 76 trên mỗi chu kỳ
Thiết lập một hình ảnh động cũng rất dễ thôi phải không? 4. Ví dụ CSS Animation thực tếTrong các bước trên, bạn đã học cách nào để thiết lập hiệu ứng chuyển động hiệu ứng Tại đây, hãy vận dụng nó để tạo ra một ví dụ thú vị nhé Chúng ta sẽ tạo ra một hiệu ứng đang tải Có rất nhiều cách để tạo hiệu ứng tải ứng dụng bằng hoạt hình Như ví dụ bên dưới, chúng ta sẽ tạo ra 4 hình vuông và thay đổi chiều cao của chúng để tạo ra hiệu ứng sóng Please get center into the property div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 7 to see the angle's bắt đầu chuyển động theo thứ tự từ trái sang phải để tạo ra hiệu ứng chuyển tiếpBạn cần nhớ, div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 7 quyết định sẽ đợi bao lâu (sau khi tải xong) để bắt đầu hoạt ảnh hiệu ứngXin hãy nhìn vào ví dụ bên dưới để xem cách nó hoạt động thực sự Lưu ý. You must be to Codepen. io to pass CAPTCHA before. Sau đó quay lại F5 bài viết để xem ví dụ minh hoạ Xem Pen Ví dụ CSS Animation của NIIT -ICT Hà Nội (@niiticthanoi) trên CodePen Lưu ý #1. Để xem được mã bạn phải mở tab khác vào codepen. io và tải lại bài viết nàyLưu ý #2. Mình đã thêm thuộc tính div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 41 để đảo ngược chạy ngược lại từ div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 6There's mean is - Sau khi thay đổi kích thước từ
div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 5 đến div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 6 thì
- Chu kỳ tiếp theo nó sẽ giảm từ
div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 6 đến div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 5
- Chu kỳ sau is from
div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 5 to div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 6
Nếu bạn không thiết lập thuộc tính div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 3, sau khi thay đổi kích thước thành div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 6, nó sẽ quay lại ngay kích thước div {
height: 10px;
width: 20px;
animation-name: grow;
animation-duration: 5s;
animation-delay: 2s;
animation-iteration-count: infinite;
} 5Điều này làm cho hiệu ứng không được mượt mà cho lắm Chúc mừng bạn đã biết sử dụng CSS AnimationTrong bài viết này, chúng ta đã cùng nhau tìm hiểu về những thuộc tính quan trọng nhất của CSS Animation Đây là phần mình thấy thú vị nhất trong Front end setting Mình đã giải thích chi tiết từng thuộc tính CSS Animation có thể làm được gì, keyframe hoạt động ra sao và giúp mình thiết lập một CSS Animation thực thế. Mình hy vọng bạn sẽ thấy bài viết này hữu ích và sẽ sử dụng nó như là bước đầu tiên để xây dựng các hiệu ứng thú vị của riêng mình. Còn nếu như bạn đã biết nhiều về CSS Animation, hãy chia sẻ những suy nghĩ của bạn về chúng trong phần bình luận để cùng thảo luận nhé. --- HỌC VIỆN ĐẠO TẠO CNTT NIIT - ICT HÀ NỘI Học lập trình chất lượng cao (Từ năm 2002). Học thực tế + Tuyển dụng ngay Đc. Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội SĐT. 02435574074 - 0968051561 Email. xin chào@niithanoi. giáo dục. vn trang chủ. https. //Facebook. com/NIIT. CNTT-TT/ #niit #niithanoi niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python |