Kesan jQuery - Animasi
animate()
kaedah jQuery animate() digunakan untuk mencipta animasi tersuai.
Sintaks:
$(selector).animate({params},speed,callback);
Definisi parameter params yang diperlukan untuk membentuk CSS animasi hartanah.
Parameter kelajuan pilihan menentukan tempoh kesan. Ia boleh mengambil nilai berikut: "perlahan", "cepat" atau milisaat.
Parameter panggil balik pilihan ialah nama fungsi yang akan dilaksanakan selepas animasi selesai.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"> </script> <script> $(document).ready(function(){ $("button").click(function(){ $("div").animate({left:'250px'}); }); }); </script> </head> <body> <button>开始动画</button> <p>向右移动</p> <div style="background:#98bf21;height:100px;width:100px;position:absolute;"> </div> </body> </html>
Nota:
Secara lalai, semua elemen HTML mempunyai kedudukan statik dan tidak boleh dialihkan.
Jika anda perlu mengendalikan kedudukan, ingat untuk menetapkan sifat kedudukan CSS elemen kepada relatif, tetap atau mutlak terlebih dahulu!
animate() - Manipulasi berbilang sifat
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"> </script> <script> $(document).ready(function(){ $("button").click(function(){ $("div").animate({ left:'250px', opacity:'0.5', height:'150px', width:'150px' }); }); }); </script> </head> <body> <button>开始动画</button> <p>逐渐变大</p> <div style="background:#98bf21;height:100px;width:100px;position:absolute;"> </div> </body> </html>
Bolehkah kaedah animate() digunakan untuk memanipulasi semua sifat CSS?
Ya, hampir! Walau bagaimanapun, terdapat satu perkara penting yang perlu diingat: apabila menggunakan animate(), anda mesti menggunakan notasi Camel untuk menulis semua nama harta, contohnya, anda mesti menggunakan paddingLeft dan bukannya padding-left, gunakan marginRight dan bukannya margin-right, dsb. . Selain itu, animasi warna tidak termasuk dalam pustaka jQuery teras.
animate() - gunakan nilai relatif
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"> </script> <script> $(document).ready(function(){ $("button").click(function(){ $("div").animate({ left:'250px', height:'+=150px', width:'+=150px' }); }); }); </script> </head> <body> <button>开始动画</button> <br><br> <div style="background:#98bf21;height:100px;width:100px;position:absolute;"> </div> </body> </html>
animate() - gunakan nilai pratakrif
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"> </script> <script> $(document).ready(function(){ $("button").click(function(){ $("div").animate({ height:'toggle' }); }); }); </script> </head> <body> <button>开始动画</button> <p>收起</p> <div style="background:#98bf21;height:100px;width:100px;position:absolute;"> </div> </body> </html>
animate() - gunakan fungsi baris gilir
Secara lalai, jQuery menyediakan fungsi baris gilir untuk animasi.
Ini bermakna jika anda menulis berbilang panggilan animate() selepas satu sama lain, jQuery akan mencipta baris gilir "dalaman" yang mengandungi panggilan kaedah tersebut. Kemudian jalankan panggilan bernyawa ini satu demi satu.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"> </script> <script> $(document).ready(function(){ $("button").click(function(){ var div=$("div"); div.animate({height:'300px',opacity:'0.4'},"slow"); div.animate({width:'300px',opacity:'0.8'},"slow"); div.animate({height:'100px',opacity:'0.4'},"slow"); div.animate({width:'100px',opacity:'0.8'},"slow"); }); }); </script> </head> <body> <button>开始动画</button> <p></p> <div style="background:#98bf21;height:100px;width:100px;position:absolute;"> </div> </body> </html>