วิธี animate ใน jQuery

วิธีการทั้งหมดที่เราพูดถึงในบทเรียนที่ผ่านมานั้นค่อนข้างจำกัด - พวกมันทำเฉพาะสิ่งที่ถูกสร้างขึ้นมาเท่านั้น หากคุณต้องการควบคุมภาพเคลื่อนไหวให้มากขึ้น - ให้ใช้วิธีการครอบคลุม animate

พารามิเตอร์แรกของวิธีนี้รับวัตถุ ซึ่งคุณควรกำหนดค่าคุณสมบัติ CSS ใหม่ที่คุณต้องการทำให้เคลื่อนไหว ส่วนพารามิเตอร์ที่สอง - คือเวลาในการดำเนินการเคลื่อนไหว

มาลองใช้วิธีนี้กับโค้ด HTML ต่อไปนี้:

html<button id="button">click me</button>
<div id="elem">text...</div>

ให้ CSS มีลักษณะดังนี้:

css#elem {
  width: 150px;
  height: 150px;
  padding: 10px;
  border: 1px solid green;
}

มาทำให้เมื่อคลิกที่ปุ่ม องค์ประกอบหดตัวเป็นขนาดต่อไปนี้: ความสูง - 50px, ความกว้าง - 100px:

javascript$('#button').click(function() {
  $('#elem').animate({height: 50, width: 100}, 1000);
});

หากกำหนดค่าในรูปแบบ height: '+=50', ภาพเคลื่อนไหวจะทำงานดังนี้: ค่าความสูงปัจจุบันจะถูกเพิ่มขึ้นด้วย 50px (ในกรณีของเรา) และองค์ประกอบจะเคลื่อนไหวอย่างลื่นไหลไปยังค่าใหม่ มาดูตัวอย่าง:

javascript$('#button').click(function() {
  $('#elem').animate({height: '+=50', width: '+=50'}, 1000);
});

ดูรายละเอียดเกี่ยวกับวิธี animate เพิ่มเติมได้ในคู่มืออ้างอิง jQuery

animate
Задание 1

มีโค้ด HTML ต่อไปนี้:

html<body>
  <div id="block"></div>
</body>
cssdiv {
  width: 100px;
  height: 100px;
  border: 1px solid black;
  cursor: pointer;
  margin-bottom: 20px;
}

ทำให้เมื่อคลิกที่ div ที่มี #block ความกว้างของมันเพิ่มขึ้นเป็น 200px ภายใน 1100ms

Задание 2

ใช้โค้ด HTML จากงานแรก ทำให้ทุกครั้งที่คลิก ที่ div ที่มี #block ความกว้างของมัน เพิ่มขึ้นทีละ 200px และแต่ละครั้งที่เพิ่มขึ้นเกิดขึ้นภายใน 900ms

Задание 3

ใช้โค้ด HTML จากงานแรก ทำให้ทุกครั้งที่คลิก ที่ div ที่มี #block ความกว้างและ ความสูงของมันเพิ่มขึ้นทีละ 100px และ แต่ละครั้งที่เพิ่มขึ้นเกิดขึ้นภายใน 950ms

Задание 4

ใช้โค้ด HTML จากงานแรก ทำให้ทุกครั้งที่คลิก ที่ div ที่มี #block, มันเคลื่อนไปทางขวา ทีละ 100px และแต่ละครั้งที่เคลื่อนไหวเกิดขึ้นภายใน 700ms