Và thực sự vậy trong hơn 1 tuần làm việc với giao diện web mình thấy Animation cho ta cảm giác website tải nhanh hơn, gia tăng trãi nghiệm người dùng mặc dù thời gian tải trang vẫn như cũ.
Làm chủ hiệu ứng Animation trong CSS3 áp dụng cho Website |
Bạn có tin không?
Nếu không tin hãy chèn 1 đoạn code hiệu ứng chuyển trang như sau vào website của mình nhé!Chèn trước thẻ đóng </b:skin>
body{animation: fadeIn 3s;-webkit-animation:fadeIn 3s;-moz-animation:fadeIn 3s;overflow-x:hidden;transition:all 1s}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}
@-moz-keyframes fadeIn{from{opacity:0}to{opacity:1}}
@-o-keyframes fadeIn{from{opacity:0}to{opacity:1}}
Tải lại trang hoặc nhấp vào 1 bài viết trên trang bạn có cảm thấy website của mình mượt mà hơn không?
Cấu trúc Animation trong CSS3 đầy đủ
Thêm Animation cho 1 thuộc tính class/id:
Tên class/id {animation: [name] [duration] [timing] [delay] [interaction-count] [direction]}
@keyframes [name]{from{...............}to{...............}}
@-webkit-keyframes [name]{from{...............}to{...............}}
@-moz-keyframes [name]{from{...............}to{...............}}
@-o-keyframes [name]{from{opacity:0}to{...............}}
Giải thích thuộc tính
.class/#id{
- Name = Tên hiệu ứng (Tùy chọn text bất kì)
- Duration = Là thời gian của 1 hiệu ứng tính bằng giây (s)
- Timing = Tốc độ chuyển động
- delay = Sau bao lâu thì bắt đầu chuyển động
- interaction-count = Số lần thực hiện chuyển động
- direction = Chuyển động như lần đầu hay đảo ngược
}
from{...............}to{...............} hiệu ứng bắt đầu đến kết thúc
Trong đó các đầu hỗ trợ các trình duyệt web:
@keyframes :
@-webkit-keyframes: Hoạt động Google Chrome (phiên bản 20 trở lên) và Safari (5.1 trở lên)
@-moz-keyframes: Hoạt động trên Firefox (phiên bản 5 trở lên)
@-o-keyframes: Hoạt động trên Opera (phiên bản 12 trở lên)
Ví dụ ta viết hiệu ứng Animation cho body{...... } nó sẽ áp dụng trên toàn trang web như sau:
body{animation: fadeIn 3s;-webkit-animation:fadeIn 3s;-moz-animation:fadeIn 3s;overflow-x:hidden;transition:all 1s}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
Đọc các thông số:
- Tên hiệu ứng: fadeIn
- 3s: Thời gian hiệu ứng hoạt động trong 3 giây
- Hiệu ứng fadeIn là hiệu ứng từ opacity:0 đến hiện rõ dần opacity:1
- Các thông số khác mặc định
Ví dụ Animation đầy đủ các thuộc tính
.class,#id {animation: [myAnimation] 5s linear 3s infinite alternate}
@keyframes [name]{from{...............}to{...............}}
@-webkit-keyframes [name]{from{...............}to{...............}}
@-moz-keyframes [name]{from{...............}to{...............}}
@-o-keyframes [name]{from{opacity:0}to{...............}}
Với [myAnimation] là tên hiệu ứng mình vừa đặt thay thế cho [name] bên dưới
Bảng Thuộc tính của animation trong css3:
Thuộc tính | giá trị | Ví dụ | Mô tả |
---|---|---|---|
animation-name | tên animation | animation-name: myAnimation; | Xác định tên cho một animation. |
animation-duration | thời gian | animation-duration: 5s; | Xác định thời gian để hoàn thành một chuyển động, mặc định là 0s. |
animation-timing-function | linear | animation-timing-function: linear; | Chuyển động sẽ cùng tốc độ từ lúc bắt đầu tới lúc kết thúc. |
ease | animation-timing-function: ease; | Chuyển động ban đầu sẽ chậm, sau đó nhanh, đến lúc kết thúc sẽ từ từ, đây là dạng mặc định. | |
ease-in | animation-timing-function: ease-in; | Chuyển động ban đầu sẽ chậm, sau đó nhanh dần. | |
ease-out | animation-timing-function: ease-out; | Chuyển động ban đầu sẽ nhanh, sau đó sẽ chậm dần. | |
ease-in-out | animation-timing-function: ease-in-out; | Chuyển động ban đầu chậm, sau đó nhanh, đến lúc kết thúc sẽ chậm dần. | |
cubic-bezier(n,n,n,n) | animation-timing-function: cubic-bezier(1,1,1,0); | Xác định giá trị riêng cho chuyển động, giá trị sẽ từ 0 tới 1. | |
animation-delay | thời gian | animation-delay: 3s; | Xác định sau bao lâu thì chuyển động sẽ bắt đầu, mặc định sẽ là 0 |
animation-iteration-count | số tự nhiên | animation-iteration-count: 4; | Xác định số lần thực hiện chuyển động. |
infinite | animation-iteration-count: infinite; | Chuyển động sẽ thực hiện không giới hạn số lần. | |
animation-direction | normal | animation-direction: normal; | Chuyển động bình thường, đây là dạng mặc định. |
alternate | animation-direction: alternate; | Chuyển động sẽ được đảo ngược ở chu kỳ tiếp theo. | |
animation-play-state | paused | animation-play-state: paused; | Xác định chuyển động dừng lại. |
running | animation-play-state: running; | Xác định chuyển động chạy. | |
animation | [name] [duration] [timing] [delay] [interaction-count] [direction] | animation: myAnimation 5s linear 3s infinite alternate; | Đây là dạng tổng hợp của các thuộc tính trên, ngoại trừ thuộc tính animation-play-state. |