วิธี animate ใน jQuery
วิธีการทั้งหมดที่เราพูดถึงในบทเรียนที่ผ่านมานั้นค่อนข้างจำกัด - พวกมันทำเฉพาะสิ่งที่ถูกสร้างขึ้นมาเท่านั้น หากคุณต้องการควบคุมภาพเคลื่อนไหวให้มากขึ้น - ให้ใช้วิธีการครอบคลุม
animate
พารามิเตอร์แรกของวิธีนี้รับวัตถุ ซึ่งคุณควรกำหนดค่าคุณสมบัติ CSS ใหม่ที่คุณต้องการทำให้เคลื่อนไหว ส่วนพารามิเตอร์ที่สอง - คือเวลาในการดำเนินการเคลื่อนไหว
มาลองใช้วิธีนี้กับโค้ด HTML ต่อไปนี้:
<button id="button">click me</button>
<div id="elem">text...</div>
ให้ CSS มีลักษณะดังนี้:
#elem {
width: 150px;
height: 150px;
padding: 10px;
border: 1px solid green;
}
มาทำให้เมื่อคลิกที่ปุ่ม องค์ประกอบหดตัวเป็นขนาดต่อไปนี้:
ความสูง - 50px, ความกว้าง - 100px:
$('#button').click(function() {
$('#elem').animate({height: 50, width: 100}, 1000);
});
หากกำหนดค่าในรูปแบบ
height: '+=50', ภาพเคลื่อนไหวจะทำงานดังนี้: ค่าความสูงปัจจุบันจะถูกเพิ่มขึ้นด้วย
50px (ในกรณีของเรา) และองค์ประกอบจะเคลื่อนไหวอย่างลื่นไหลไปยังค่าใหม่ มาดูตัวอย่าง:
$('#button').click(function() {
$('#elem').animate({height: '+=50', width: '+=50'}, 1000);
});
ดูรายละเอียดเกี่ยวกับวิธี animate เพิ่มเติมได้ในคู่มืออ้างอิง jQuery
มีโค้ด HTML ต่อไปนี้:
<body>
<div id="block"></div>
</body>
div {
width: 100px;
height: 100px;
border: 1px solid black;
cursor: pointer;
margin-bottom: 20px;
}
ทำให้เมื่อคลิกที่ div ที่มี
#block ความกว้างของมันเพิ่มขึ้นเป็น
200px ภายใน 1100ms
ใช้โค้ด HTML จากงานแรก ทำให้ทุกครั้งที่คลิก
ที่ div ที่มี #block ความกว้างของมัน
เพิ่มขึ้นทีละ 200px และแต่ละครั้งที่เพิ่มขึ้นเกิดขึ้นภายใน
900ms
ใช้โค้ด HTML จากงานแรก ทำให้ทุกครั้งที่คลิก
ที่ div ที่มี #block ความกว้างและ
ความสูงของมันเพิ่มขึ้นทีละ 100px และ
แต่ละครั้งที่เพิ่มขึ้นเกิดขึ้นภายใน
950ms
ใช้โค้ด HTML จากงานแรก ทำให้ทุกครั้งที่คลิก
ที่ div ที่มี #block, มันเคลื่อนไปทางขวา
ทีละ 100px และแต่ละครั้งที่เคลื่อนไหวเกิดขึ้นภายใน
700ms