Bài 28: Cách tạo animation trong css

0

Trong bài 28, mình sẽ hướng dẫn các bạn cách tạo animation trong css. Trong bài 26 chúng ta đã biết cách tạo hiệu ứng zoom khi hover vào đối tạo. Nội dung animation ngày hôm nay sẽ là tạo động zoom hình ảnh và chạy chữ như powerpoint trên giao diện web.

Video – Cách tạo animation trong css

Nội dung cần thực hiện

+ Tạo hiệu ứng zoom mà không cần hover vào đối tượng hình ảnh

+ Tạo hiệu ứng chữ chạy tự động

Hướng dẫn

+ Tạo animation tự định nghĩa và tùy biến theo công thức:

@-webkit-keyframes ten-animation{
   from{ trạng thái đầu}
   to{ trạng thái sau }
}

+ Sử dụng animation cho đối tượng

Thuộc tính tổng hợp: animation: tên-animation time forwards;

Một số thuộc tính riêng

animation-name: tên animation sẽ áp dụng cho đối tượng.

animation-delay: thời gian hoãn animation;

animation-iteration-count: số lầ thực hiện;

aniamtion-direction: chiều chạy animation;

Các giá trị có thể sử dụng:

  • normal – animation chạy tự bình thường (đây là giá trị mặc định)
  • reverse – animation sẽ chạy ngược lại so với bình thường
  • alternate – animation sẽ chạy bình thường ở các lượt lẻ (1,3,5,7,…) và chạy ngược lại ở các lượt chẵn (2,4,6,8,…)
  • alternate-reverse – animation sẽ chạy ngược lại ở các lượt lẻ (1,3,5,7,…) và chạy bình thường ở các lượt chẵn (2,4,6,8,…)

animation-fill-mode: xác định trạng thái của một animation, khi mà animation không được chạy (có thể là animation này đã chạy xong hoặc đang bị delay)

Các giá trị có thể sử dụng:

  • none  – đây là giá trị mặc định. Khi mà animation không hoạt động nữa thì nó sẽ không thêm một style nào vào thành phần.
  • forwards – khi mà animation không hoạt động nữa thì nó sẽ apply hết tất cả các thuộc tính cuối cùng của animation
  • backwards – khi mà animation không hoạt động nữa nó sẽ apply tất cả các giá trị của thuộc tính trong lần đầu xuất hiện trong keyfames (phụ thuộc vào thuộc tính anmation-direction)
  • both

Các thuộc tính đã hướng dẫn

Các thuộc tính cơ bản

+ bachground-image:-webkit-linear-gradient(left, red 0%, orange 50%, yellow 100%), hiệu ứng đổ màu gradient

+ transform:scale(2), hiệu ứng zoom, phóng to thu nhỏ

+ box-sizing: border-box, cố định chiều rộng và chiều cao

+ transform: rotate(-45deg) để xoay khối div góc 45 độ

+ border-radius: 5px; bo tròn các góc của khối với bán kính 5px

+ background-size: cover, để hình luôn đầy 100% khối

+ background-attachment: fixed (cố đinh hình nền khi cuộn trang)

+ nth-child(3) để ghi đè css cho các đoạn giống nhau.

+ margin: auto, tự động canh biên

+ text-transform: uppercase, tự động viết hoa

+ box-shadow: 2px 2px 7px; tạo đổ bóng (các thông số lần lượt là đổ sang phải, bên dưới, độ rộng của bóng mờ)

+ transition: 0.4s; tùy chỉnh lại các hiệu ứng

+ float: left (right) dồn các khối

+ overflow: hidden

+ display: block, biến thẻ không xuống dòng thành khối để hiểu được thuộc tính margin

+ display: inline, biến thành các thẻ không xuống dòng

+ margin và padding, biên tính từ viền của khối ra ngoài, lề tính từ viền khối vào bên trong nội dung

+ border : viền, 1px (độ dày) black (màu) solid (loại nét)

+ text-align : canh lề

+ font-size : kích thước.

+ font-weight : bold độ đậm nhạt, giống như thẻ <b></b>

+ font-family : kiểu chữ hay font chữ

+ font-style: italic : tạo chữ in nghiêng

+ text-decoration: none, underline.

+ line-height: 20px: độ giãn dòng.

+ color: (màu chữ) dùng green, red hay mã màu

+ background-color: (màu nền) black

+ background-image: url(imgage source), hình nền

Các thuộc tính flexbox

display: flex; hoặc display: inline-flex

flex-direction :

+ row, theo hàng tương đương với float:left

+ row-reverse, theo hàng từ sau ra trước, float:right;

+ column, theo cột từ trên xuống dưới

+ column-reverse, theo hàng từ dưới lên trên.

flex-wrap (có xuống dòng hay không khi đủ chiều rộng).

+ no-wrap: ko xuống dòng, chỉ hiện thị trên 1 hàng

+ wrap: đủ chiều rộng của khối cha thì tự động xuống dòng.

+ wrap-reverse: đảo ngược.

justify-content:  canh chỉnh theo chiều ngang cho các khối bên trong

+ center: tự động căn giữa (tương đương text-align :center)

+ flex-start (dồn sang trái)

+ flex-end (dồn sang phải)

+ space-between ( chia đều trong khối)

+ space-around (chia đều các khối và hai lề của khối ngoài).

align-items: canh chỉnh theo chiều dọc (khối bên ngoài phải có độ cao cố định)

+ stretch: tự lấp đầy chiều cao

+ flex-start: dồn lên trên

+ flex-end: dồn xuống dưới.

+ base-line: chỉ canh chữ cho thẳng hàng.

+ center: canh giữa theo chiều dọc. Thuộc tính này hỗ trợ rất nhiều cho việc làm web, và  là thuộc tính mới chỉ có từ CSS 3.

Các thuộc tính chia layer

+ position: relative; (chọn làm mốc)

+ position: absolute; (định vị trí cho khối, đi chung với các thuộc tính top, bottom, left, right)

+ top: 10px, vị trí tính từ trên xuống

+ bottom: 10px, vị trí tính từ dưới lên

+ left: 10px, vị trí từ bên trái

+ right: 10px, vị trí từ bên phải

Code mẫu: Download

Nếu có thắc mắc, hãy đặt câu hỏi bằng cách comment bên dưới, qua email, hoặc nhắn tin qua Fanpage Góc làm web.

Liên hệ

Để lại một trả lời

Địa chỉ email của bạn sẽ không được công bố.