1. Menunjukkan dan menyembunyikan elemen
<script type="text/javascript"> function f1(){ //隐藏 $("div").hide();//display:none //document.getElementById('id').style.display="none"; } function f2(){ //显示 $("div").show();//display:block } function f3(){ $("div").toggle(); } </script> <style type="text/css"> div {width:300px; height:200px; background-color:blue;} </style> <body> <div>duck and dog</div> <input type="button" value="隐藏" onclick="f1()" /> <input type="button" value="显示" onclick="f2()" /> <input type="button" value="开关效果" onclick="f3()" /> </body>
Arahan khusus adalah seperti berikut:
2. Tunjukkan dan sembunyikan kesan gelongsor
Panggilan balik: Fungsi panggil balik dipanggil secara automatik selepas kesan dilaksanakan
<script type="text/javascript"> function f1(){ //隐藏 $("div").slideUp(3000,function(){ alert('我消失了,你能看到么'); }); } function f2(){ //显示 $("div").slideDown(3000,function(){ alert('我又回来了'); });//display:block } function f3(){ $("div").slideToggle(1000); } $(function(){ //气缸滑动效果 //setInterval("f3()",1000); }); </script> <style type="text/css"> div {width:300px; height:200px; background-color:blue;} </style> <body> <div>duck and dog</div> <input type="button" value="隐藏" onclick="f1()" /> <input type="button" value="显示" onclick="f2()" /> <input type="button" value="开关效果" onclick="f3()" /> </body>
3. Kesan pudar
Benarkan elemen dipaparkan dan disembunyikan melalui perubahan ketelusan tertentu
<script type="text/javascript"> function f1(){ //隐藏 $("div").fadeOut(4000); } function f2(){ //显示 $("div").fadeIn(4000); $("#two").fadeTo(2000,0.3); } function f3(){ $("div").fadeToggle(2000); } </script> <style type="text/css"> div {width:300px; height:200px; background-color:blue;} </style> <body> <div id = "two">duck and dog</div> <input type="button" value="隐藏" onclick="f1()" /> <input type="button" value="显示" onclick="f2()" /> <input type="button" value="开关效果" onclick="f3()" /> </body>
4. Kaedah asas animasi kesan animasi()
show() hide() dan kesan animasi lain secara dalaman melaksanakan kaedah animate()
$().animate(css效果参数[,时间][,回调函数]);
<script type="text/javascript"> function f1(){ //文字大小、文字粗体、div本身宽度和高度 //font-size background-color color console.log($("div")); //jquery对象调用完毕css方法本身还是一个jquery对象 //说明css方法执行完毕有return this关键字 console.log($("div").css('font-weight','bold').css("background-color",'pink')); var jn = {'font-size':'30px',width:'400px',height:'300px'}; $("div").css('font-weight',"bold").css("background-color","pink").css("color","white").animate(jn,2000); //$("div").animate(jn,2000); } </script> <style type="text/css"> div {width:300px; height:200px; background-color:blue; } </style> <body> <div>duck and dog</div> <input type="button" value="设置" onclick="f1()" /> </body>
5. Animasi pengumpulan dan penolakan
Jika animasi ditetapkan ke kiri: 500 pada satu masa, klik pertama pada div akan mengalihkan 500 piksel ke kiri, dan klik kedua tidak akan bergerak. Pengumpulan, pengumpulan dan penolakan ialah pergerakan berterusan Hanya tukar kiri: "500px" ke kiri: " =500px" atau kiri: "-=500px".
(function(){ $("#panel").click(function(){ $(this).animate({left: "+=500px"}, 3000); }) })</span>
6. Berbilang animasi
1. Laksanakan berbilang animasi pada masa yang sama
Contoh di atas hanya mengawal perubahan atribut kiri Kali ini apabila kita mengawal atribut kiri, kita juga mengawal ketinggian elemen kepada 200px.
$(function(){ $("#panel").click(function(){ $(this).animate({left: "500px",height:"200px"}, 3000); }) })
2. Laksanakan animasi secara berurutan
Dalam contoh di atas, dua animasi mengalihkan elemen ke kanan dan membesarkan ketinggian dilakukan secara serentak. Sekarang kita perlu bergerak ke kanan dahulu dan kemudian membesarkan ketinggian Ia sangat mudah. Kita hanya perlu membahagikan kaedah animate() di atas dan menulisnya kepada dua
$(function(){ $("#panel").click(function(){ $(this).animate({left: "500px"},3000) .animate({height:"200px"},1000); }) })
3. Animasi Komprehensif
Animasi yang lebih kompleks dilakukan seterusnya. Klik pada elemen div untuk mengalihkannya ke kanan sambil meningkatkan ketinggiannya dan menukar kelegapannya daripada 50% kepada 100%. Kemudian biarkan ia bergerak dari atas ke bawah sementara lebarnya menjadi lebih besar Apabila ini selesai
Selepas beberapa kesan, ia akan disembunyikan dengan pudar.
$(function(){ $("#panel").css("opacity",0.5);//设置不透明度 $("#panel").click(function(){ $(this).animate({left: "400px",height:"200px",opacity:"1"},3000) .animate({top:"200px",width:"200px"},3000) .fadeOut(1000); }) })
7. Fungsi panggil balik animasi
Dalam contoh di atas, jika anda ingin menukar gaya css dan bukannya menyembunyikan elemen dalam langkah terakhir. Kini kita boleh menggunakan fungsi panggil balik parameter ketiga bagi animasi
$(function(){ $("#panel").css("opacity",0.5);//设置不透明度 $("#panel").click(function(){ $(this).animate({left: "400px",height:"200px",opacity:"1"},3000) .animate({top:"200px",width:"200px"},3000,function(){$(this).css("border","5px solid blue")}); }) })
8 Hentikan animasi dan tentukan sama ada ia dalam keadaan animasi
1 Hentikan animasi elemen
stop([clearQueue][,gotoEnd]) Kedua-duanya adalah parameter pilihan, kedua-duanya jenis boolean
Perihalan parameter:
gotoEnd: mewakili sama ada untuk melompat ke keadaan akhir animasi yang sedang dilaksanakan
Anda boleh memahami dua parameter kaedah stop() ini melalui contoh komprehensif:
<style type="text/css"> *{margin:0;padding:0;} body { font-size: 13px; line-height: 130%; padding: 60px } #panel { width: 60px; border: 1px solid #0050D0 ;height:22px;overflow:hidden;} .head { padding: 5px; background: #96E555; cursor: pointer;width: 300px;} .content { padding: 10px; text-indent: 2em; border-top: 1px solid #0050D0;display:block; width:280px;} </style> <script src="../../../scripts/jquery.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ $("button:eq(0)").click(function () { $("#panel") .animate({height : "150" } , 2000 ) .animate({width : "300" } , 2000 ) .hide(3000) .animate({height : "show" , width : "show" , opacity : "show" } , 2000 ) .animate({height : "500"} , 2000 ); }); $("button:eq(1)").click(function () { $("#panel").stop();//停止当前动画,继续下一个动画 }); $("button:eq(2)").click(function () { $("#panel").stop(true);//清除元素的所有动画 }); $("button:eq(3)").click(function () { $("#panel").stop(false,true);//让当前动画直接到达末状态 ,继续下一个动画 }); $("button:eq(4)").click(function () { $("#panel").stop(true,true);//清除元素的所有动画,让当前动画直接到达末状态 }); }) </script> <body> <button>开始一连串动画</button> <button>stop()</button> <button>stop(true)</button> <button>stop(false,true)</button> <button>stop(true,true)</button> <div id="panel"> <h5 class="head">三国杀杀天下</h5> <div class="content"> 夏侯惇的眼睛,陆逊的联营,郭嘉司马深深的基情 </div> </div> </body> </html>
2. Tentukan sama ada elemen dalam keadaan animasi
Apabila menggunakan kaedah animate(), elakkan ketidakkonsistenan antara animasi dan gelagat pengguna yang disebabkan oleh pengumpulan animasi. Pengumpulan animasi berlaku apabila pengguna dengan pantas melakukan animasi animate() pada elemen.Penyelesaian adalah untuk menentukan sama ada elemen berada dalam keadaan animasi dan hanya menambah animasi baharu pada elemen apabila ia tidak berada dalam keadaan animasi.
Penggunaan:
if(!$(element).is(":animated")){ //添加新的动画 }
Melalui analisis terperinci artikel ini tentang 8 kesan animasi jquery, anda boleh bermain dengan kesan animasi jquery saya harap anda akan menyukai artikel ini yang menyediakan pengenalan menyeluruh kepada kesan animasi jquery.