Phương thức animate() - tạo hiệu ứng chuyển động bằng jQuery

phương thức animate()
Bài viết hôm nay sẽ giới thiệu đến các bạn một phương thức được sử dụng rất thường xuyên trong việc tạo hiệu ứng bằng jQuery. Đó là sử dụng phương thức animate() để tạo ra sự chuyển động, hoặc thay đổi cho phần tử
Các bạn đang xem bài viết thuộc bài học về jQuery Effects - hiệu ứng jQuery

Khái niêm về phương thức jQuery animate() và cú pháp

Ví dụ Bấm vào button dưới đây để xem hiệu ứng thay đổi kích thước của hình ảnh


phương thức animate trong jQuery



LaiXe.Xyz
Phương thức animate() trong jQuery dùng để thực hiện hiệu ứng chuyển động bằng cách thay đổi các thuộc tính CSS.
Các thuộc tính CSS sẽ được thay đổi dần dần, từ thuộc tính này sang thuộc tính khác, đó cũng là cách thức để tạo ra hiệu ứng, giống như 2 ví dụ ở trên đã đề cập.
Chỉ các giá trị số có thể được làm động (như margin: 30px). Các giá trị chuỗi không thể tạo hiệu ứng bằng phương thức animate() (như background-color:red), ngoại trừ các chuỗi "show", "hide""toggle". Các giá trị này cho phép ẩn và hiển thị phần tử được tạo hiệu ứng animate
Mẹo: Sử dụng "+=" hoặc "-=" cho việc tăng dần, hoặc giảm dần hiệu ứng.

Syntax

Phương thức animate() trong jQuery có cú pháp

(selector).animate({styles},speed,easing,callback)
Tham số / ParameterMô tả
styles Bắt buộc. Dùng để chỉ định một hoặc nhiều thuộc tính / giá trị CSS để tạo hiệu ứng.
Lưu ý: Các thuộc tính CSS có dấu gạch ngang ở giữa như padding-left. chúng ta loại bỏ dấu gạch ngang, viết hoa chữ đầu tiên sau đó và nối vào, cụ thể sẽ ghi lại là paddingLeft Những thuộc tính CSS có thể áp dụng được phương thức animate()

selector Đây là bộ chọn jQuery để xác định phần tử hoặc những phần tử được chọn
speed Không bắt buộc. Dùng để chỉ định tốc độ của hiệu ứng animate. (Giá trị mặc định là 400 milliseconds)
Giá trị có thể được sử dụng:
  • milliseconds (nếu 1 giây thì bạn sẽ ghi là 1000)
  • "slow"
  • "fast"
easing Không bắt buộc. Dùng để chỉ định tốc độ của phần tử trong các điểm khác nhau của sự chuyển động.(Giá trị mặc định là "swing")
Giá trị có thể được sử dụng:
  • "swing" - di chuyển chậm hơn ở đầu và cuối, nhưng nhanh hơn ở giữa
  • "linear" - di chuyển tốc độ không đổi
callback Không bắt buộc. Dùng để thực thi một hàm sau khi phương thức animate() hoàn thành.
jQuery Callback sẽ được đề cập rõ hơn trong bài học sau

Alternate Syntax - Cú pháp khác

Ngoài ra phương thức animate() trong jQuery còn có cú pháp

(selector).animate({styles},{options})
Tham số / ParameterMô tả
styles Bắt buộc. Dùng để chỉ định một hoặc nhiều thuộc tính / giá trị CSS để tạo hiệu ứng. (Tương tự như ở trên)
options Không bắt buộc. Dùng để chỉ định những lựa chọn bổ sung cho hiệu ứng với các giá trị có thể thêm vào sau đây:

  • duration - Đặt tốc độ của hiệu ứng đơn vị milliseconds (Ví dụ: 1 giây thì bạn sẽ set là 1000)
  • easing - chỉ định hàm easing để sử dụng
  • complete - chỉ định một hàm được thực thi sau khi hiệu ứng hoàn thành.
  • step - chỉ định một hàm được thực thi cho từng bước trong hiệu ứng.
  • progress - chỉ định một hàm sẽ được thực hiện sau mỗi bước trong hình ảnh động
  • queue - một giá trị Boolean chỉ định có đặt hiệu ứng animate vào hàng đợi hay không
  • specialEasing - bản đồ của một hoặc nhiều thuộc tính CSS từ tham số kiểu và các chức năng nới lỏng tương ứng của chúng
  • start - chỉ định một hàm sẽ được thực thi khi hiệu ứng animate bắt đầu
  • done - chỉ định một hàm sẽ được thực thi khi hiệu ứng animate kết thúc
  • fail - chỉ định một hàm sẽ được thực thi nếu hiệu ứng animate không hoàn thành
  • always - chỉ định một hàm sẽ được thực thi nếu hiệu ứng animate dừng mà không hoàn thành

jQuery animate() - Thao tác với nhiều thuộc tính

Mặc định, tất cả các phần tử HTML có thuộc tính CSS position (vị trí) là position:static và không thể di chuyển. Để thao tác về vị trí, trước tiên hãy nhớ đặt thuộc tính position CSS của phần tử là relative, fixed, hoặc absolute nhé các bạn!

Ví dụ

Dùng phương thức animate() với nhiều thuộc tính CSS

$("button").click(function(){
  $("div").animate({
    left: '250px',
    opacity: '0.5',
    height: '150px',
    width: '150px',
    paddingLeft: '20px',
  });
});
Lưu ý: ở đây thuộc tính CSS padding-left được chuyển thành paddingLeft

jQuery animate() - sử dụng giá trị tương đối

Sử dụng giá trị tương đối, khi bạn muốn tăng dần hoặc giảm dần khi hiệu ứng được thực thi bằng cách sử dụng += hoặc -=

Ví dụ

Dùng phương thức animate() với giá trị tăng tương đối

$("button").click(function(){
  $("div").animate({
    left: '250px',
    height: '+=150px',
    width: '+=150px'
  });
});

jQuery animate () - Sử dụng các giá trị được xác định trước

Sử dụng các chuỗi "show", "hide""toggle" trong phương thức animate()

Ví dụ

Dùng phương thức animate() với giá trị "toggle"

$("button").click(function(){
  $("div").animate({
    height: 'toggle'
  });
});

Ví dụ về hiệu ứng được tạo từ phương thức animate()

Ví dụ

Dùng phương thức animate() để thay đổi chiều cao cho phần tử

$("button").click(function(){
  $("#box").animate({height: "300px"});
});

Ví dụ

Dùng phương thức animate() với callback function để lặp lại hiệu ứng

 $("button").click(function(){
    var div = $("div");
    startAnimation();
    function startAnimation(){
      div.animate({height: 300}, "slow");
      div.animate({width: 300}, "slow");
      div.css("background-color", "blue");  
      div.animate({height: 100}, "slow");
      div.animate({width: 100}, "slow", startAnimation);
    }
  });

Ví dụ

Dùng phương thức animate() với cú pháp thay thế

 $("#btn").click(function(){
    $("#box").animate({
      height: "300px",
      width: "300px"
    }, {
      duration: 5000,
      easing: "linear",
      complete: function(){
      $(this).after("<p>Hiệu ứng Animation hoàn thành!</p>");
      }
    });
  });

Ví dụ

Dùng phương thức animate() để tạo thanh Progress Bar (thanh tiến trình)

  $("#btn").click(function(){
    $("#box").animate({
      width: "400px"
    }, {
      duration: 5000,
      easing: "linear",
      step: function(x) {
        $("#demo").text(Math.round(x * 100 / 400)  + "%");  
      }
    });
  });

Ví dụ

Dùng phương thức animate() để tạo thanh hiệu ứng cuộn khi bấm vào link

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  // Add smooth scrolling to all links
  $("a").on('click', function(event) {
    // Make sure this.hash has a value before overriding default behavior
    if (this.hash !== "") {
      // Prevent default anchor click behavior
      event.preventDefault();
      // Store hash
      var hash = this.hash;
      // Using jQuery's animate() method to add smooth page scroll
      // The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area
      $('html, body').animate({
        scrollTop: $(hash).offset().top
      }, 800, function(){   
        // Add hash (#) to URL when done scrolling (default click behavior)
        window.location.hash = hash;
      });
    } // End if
  });
});
</script>
 <style>
body, html, .main {
  height: 100%;
}
section {
  min-height: 100%;
}
</style>
</head>
<body>
<a href="#section2">Click Me to Smooth Scroll to Section 2 Below</a>
<div class="main">
  <section></section>
</div>
<div class="main" id="section2">
  <section style="background-color:blue"></section>
</div>
</body>
</html>
Trên đây là bài viết về hiệu ứng Animate (Animate Effect) trong jQuery. Hi vọng những kiến thức, cùng những ví dụ sẽ giúp ích cho các bạn trong việc học jQuery từ cơ bản đến nâng cao hiệu quả nhất
Chuyên Mục :
tháng 7 20, 2020
Bình Luận

LaiXe.Xyz

Blog Lái Xe, chia sẻ thông tin về luật giao thông đường bộ, biển báo giao thông, thông tin về xe ô tô, thi bằng lái xe các hạng bằng A1, A2, B1, B2, C, D, E, F

Thi Thử Lái Xe B2 Mới Nhất

"Tiến hành giảng dạy bộ 600 câu hỏi vào tháng 06/2020 và áp dụng thi sát hạch vào tháng 10 năm 2020. Bộ đề 600 câu hỏi sẽ được phát hành dạng sách khoảng tháng 5/2020."

DMCA.com Protection Status