Thuộc tính animation-play-state trong CSS

Thuộc tính animation-play-state trong CSS
Thuộc tính animation-play-state trong CSS

Chức năng của Thuộc tính animation-play-state trong CSS

Thuộc tính animation-play-state trong CSS dùng paused để dừng một animation đang chạy, dùng running để chạy một animation đang dừng.

Cú pháp của Thuộc tính animation-play-state trong CSS

animation-play-state: giatri;

giatri: Giá trị để dừng một animation đang chạy hoặc chạy một animation đang dừng (Ví dụ: paused, running)

Các giá trị của Thuộc tính animation-play-state trong CSS

paused: Dùng để dừng một animation đang chạy.

running: Dùng để chạy một animation đang dừng.

Code Thuộc tính animation-play-state trong CSS

Giá trị paused của thuộc tính animation-play-state trong CSS

Dùng để dừng một animation đang chạy:

animation-play-state: paused;
<!DOCTYPE html>
<html>
<head>
<title>Giá trị paused của thuộc tính animation-play-state trong CSS</title>
<style>
* { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;}
#chayngang {
    width: 200px;
    height: 50px;
    margin-bottom:10px;
    line-height:50px;
    text-align:center;
    background: red;
    position: relative;
    animation-name: chayngang; /* Áp dụng animation có tên "chayngang" */
    animation-duration: 4s; /* Thời gian diễn ra animation là 4s*/
    animation-iteration-count: infinite; /*số lần một animation sẽ lặp lại là vô hạn*/ 
}
#chayngang2 {
    width: 200px;
    height: 50px;
    margin-bottom:10px;
    line-height:50px;
    text-align:center;
    background: red;
    position: relative;
    animation-name: chayngang2; /* Áp dụng animation có tên "chayngang2" */
    animation-duration: 4s; /* Thời gian diễn ra animation là 4s*/
    animation-iteration-count: infinite; /*số lần một animation sẽ lặp lại là vô hạn*/  
    
}
#chayngang:hover{animation-play-state: paused; /*Dừng animation */}
#chayngang2:hover{animation-play-state: paused; /*Dừng animation */}
@keyframes chayngang{
  from {left: 0px;}
  to {left: 200px;}	
}
@keyframes chayngang2{
  0% {left: 0px;}
  100% {left: 200px;}	
}
</style>
</head>
<body>

<h1>Giá trị paused của thuộc tính animation-play-state trong CSS</h1>

<p>Dùng để dừng một animation đang chạy, Rê chuột vào nút để dừng animation:</p>

<div id="chayngang">animation-play-state: paused;</div>

<div id="chayngang2">animation-play-state: paused;</div>

</body>
</html>

Chạy Thử

Giá trị running của thuộc tính animation-play-state trong CSS

Dùng để chạy một animation đang dừng:

animation-play-state: running;
<!DOCTYPE html>
<html>
<head>
<title>Giá trị running của thuộc tính animation-play-state trong CSS</title>
<style>
* { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;}
#chayngang {
    width: 200px;
    height: 50px;
    margin-bottom:10px;
    line-height:50px;
    text-align:center;
    background: red;
    position: relative;
    animation-name: chayngang; /* Áp dụng animation có tên "chayngang" */
    animation-duration: 4s; /* Thời gian diễn ra animation là 4s*/
    animation-iteration-count: infinite; /*số lần một animation sẽ lặp lại là vô hạn*/ 
    animation-play-state: paused; /*Dừng animation */
}
#chayngang2 {
    width: 200px;
    height: 50px;
    margin-bottom:10px;
    line-height:50px;
    text-align:center;
    background: red;
    position: relative;
    animation-name: chayngang2; /* Áp dụng animation có tên "chayngang2" */
    animation-duration: 4s; /* Thời gian diễn ra animation là 4s*/
    animation-iteration-count: infinite; /*số lần một animation sẽ lặp lại là vô hạn*/
    animation-play-state: paused; /*Dừng animation */
    
}
#chayngang:hover{animation-play-state: running; /*Chạy animation */}
#chayngang2:hover{animation-play-state: running; /*Chạy animation */}
@keyframes chayngang{
  from {left: 0px;}
  to {left: 200px;}	
}
@keyframes chayngang2{
  0% {left: 0px;}
  100% {left: 200px;}	
}
</style>
</head>
<body>

<h1>Giá trị running của thuộc tính animation-play-state trong CSS</h1>

<p>Dùng để chạy một animation đang dừng, Rê chuột vào nút để chạy animation:</p>

<div id="chayngang">animation-play-state: running;</div>

<div id="chayngang2">animation-play-state: running;</div>

</body>
</html>

Chạy Thử

Ứng dụng animation-play-state trong thực tế

animation-play-state hữu ích khi cần chủ động kiểm soát trạng thái chạy của một hiệu ứng CSS thay vì để animation hoạt động liên tục. Tùy tình huống, bạn có thể cho hiệu ứng tạm dừng, tiếp tục hoặc kết hợp với các tương tác khác trên trang.

Tạm dừng animation khi người dùng tương tác

Một cách ứng dụng phổ biến là tạm dừng animation tại thời điểm người dùng đưa chuột vào một phần tử. Điều này giúp người xem có thêm thời gian quan sát nội dung đang chuyển động, đặc biệt với banner, danh sách chạy hoặc hiệu ứng có chu kỳ dài.

Chẳng hạn, animation được thiết lập chạy bình thường và chuyển sang trạng thái paused khi phần tử được hover:

.box {
  animation: move 3s linear infinite;
}

.box:hover {
  animation-play-state: paused;
}

Khi con trỏ rời khỏi phần tử, trạng thái trở lại running theo thiết lập ban đầu và animation tiếp tục từ vị trí đang dừng, thay vì phát lại từ đầu.

Kết hợp animation-play-state với hiệu ứng hover

Kết hợp animation-play-state với :hover giúp tạo các tương tác trực quan mà không cần thêm JavaScript. Cách này phù hợp với những thành phần cần chuyển động liên tục nhưng vẫn cho phép người dùng chủ động kiểm soát khi tương tác.

Ví dụ, một phần tử có thể liên tục xoay và dừng chuyển động khi người dùng di chuột lên:

.icon {
  animation: rotate 2s linear infinite;
}

.icon:hover {
  animation-play-state: paused;
}

Điểm đáng chú ý là việc tạm dừng chỉ làm ngừng tiến trình của animation tại thời điểm hiện tại. Khi tiếp tục chạy, hiệu ứng sẽ đi tiếp từ trạng thái đã dừng, nhờ đó chuyển động liền mạch và tự nhiên hơn.

Điều khiển animation bằng JavaScript

Khi cần điều khiển animation theo một sự kiện phức tạp hơn, JavaScript có thể thay đổi giá trị animationPlayState của phần tử. Cách này cho phép tạo nút phát, tạm dừng hoặc tiếp tục animation dựa trên hành động cụ thể của người dùng.

const box = document.querySelector('.box');

box.style.animationPlayState = 'paused';

Để cho animation chạy tiếp, có thể chuyển trạng thái về running:

box.style.animationPlayState = 'running';

Cách điều khiển này đặc biệt hữu ích khi trạng thái animation không chỉ phụ thuộc vào hover mà còn liên quan đến nút bấm, sự kiện trên giao diện hoặc logic xử lý của ứng dụng.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Thuộc tính animation-play-state trong CSS.

  • 0 Bình luận
CEO Bùi Tấn Lực | Founder Web Mới
Bùi Tấn Lực
Tìm hiểu về CEO Bùi Tấn Lực, Founder Web Mới với nhiều năm kinh nghiệm trong lĩnh vực phát triển website, SEO và chia sẻ kiến thức công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Thuộc tính animation-play-state trong CSS
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !