方式一:javascript
$("div").show();css
解釋:無參數,表示讓指定的元素顯示出來。其實這個方法的底層就是經過display:block;實現html
方式二:java
$("div").show(3000);jquery
解釋:經過控制元素的寬高、透明度、display屬性,逐漸顯示,2秒後顯示完畢ide
方式三:函數
$("div").show("slow");動畫
參數能夠是:this
解釋:和方式二相似,也是經過控制元素的寬高、透明度、display屬性,逐漸顯示spa
方式四:
//show(毫秒數,回調函數);
$("div").show(5000,function(){
alert("動畫執行完畢")
});
解釋:動畫執行完後,當即執行回調函數
總結:上面的四種方式幾乎一致:參數能夠有兩個,第一個是動畫的執行時長,第二個是動畫結束後執行的回調函數
方式參照上面的show()方法的方式。
參數:參照上面的show方法
Selector:jQuery節點對象
例子:
$("#box").toggle(3000,function(){});
顯示和隱藏的來回切換採用的是 toggle() 方法:就是先執行show(),再執行hide()
$("selector").animate({params},speed,callback);
做用:執行一組css屬性的自定義動畫
示例:
$("selector").stop(true,false);
裏面的兩個參數,有不一樣的含義
第一個參數:
第二個參數:
Ps:參數若是都不寫,默認兩個都是false。實際工做中,直接寫stop()用的多
示例:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style type="text/css"> * { margin: 0; padding: 0; } ul { list-style: none; } .wrap { width: 330px; height: 30px; margin: 100px auto 0; padding-left: 10px; background-color: pink; } .wrap li { background-color: green; } .wrap > ul > li { float: left; margin-right: 10px; position: relative; } .wrap a { display: block; height: 30px; width: 100px; text-decoration: none; color: #000; line-height: 30px; text-align: center; } .wrap li ul { position: absolute; top: 30px; display: none; } </style> <script src="jquery-3.3.1.js"></script> <script> //入口函數 $(document).ready(function () { //需求:鼠標放入一級li中,讓他裏面的ul顯示。移開隱藏。 var jqli = $(".wrap>ul>li"); //綁定事件 jqli.mouseenter(function () { $(this).children("ul").stop().slideDown(1000); }); //綁定事件(移開隱藏) jqli.mouseleave(function () { $(this).children("ul").stop().slideUp(1000); }); }); </script> </head> <body> <div class="wrap"> <ul> <li> <a href="javascript:void(0);">一級菜單1</a> <ul> <li><a href="javascript:void(0);">二級菜單2</a></li> <li><a href="javascript:void(0);">二級菜單3</a></li> <li><a href="javascript:void(0);">二級菜單4</a></li> </ul> </li> <li> <a href="javascript:void(0);">二級菜單1</a> <ul> <li><a href="javascript:void(0);">二級菜單2</a></li> <li><a href="javascript:void(0);">二級菜單3</a></li> <li><a href="javascript:void(0);">二級菜單4</a></li> </ul> </li> <li> <a href="javascript:void(0);">三級菜單1</a> <ul> <li><a href="javascript:void(0);">三級菜單2</a></li> <li><a href="javascript:void(0);">三級菜單3</a></li> <li><a href="javascript:void(0);">三級菜單4</a></li> </ul> </li> </ul> </div> </body> </html>
Ps: javascript:void(0); //跟 javascript:; 效果同樣
關鍵:用了stop函數,再執行動畫前,先停掉以前的動畫
相似於生活中的捲簾門
$(selector).slideDown(speed,回調函數);
解釋:下拉動畫,顯示元素
注意:省略參數或者傳入不合法的字符串,那麼則使用默認值:400毫秒(一樣適用於fadeIn/slideDown/slideUp)
$(selector).slideUp(speed,回調函數);
解釋:上拉動畫,隱藏元素
$(selector).slideToggle(speed,回調函數);
$(selector).fadeIn(speed,callback);
做用:讓元素以淡淡的進入視線的方式展現出來
$(selector).fadeOut(speed,callback);
做用:讓元素以漸漸消失的方式隱藏起來
$(selector).fadeToggle(speed,callback);
做用:經過改變透明度,切換匹配元素的顯示或隱藏狀態
參數:同show()方法
實例代碼:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> div { width: 300px; height: 300px; display: none; /*透明度*/ opacity: 0.5; background-color: red; } </style> <script src="jquery-3.3.1.js"></script> <script> $(function () { //點擊按鈕後產生動畫 $("button:eq(0)").click(function () { // //淡入動畫用法1: fadeIn(); 不加參數 $("div").fadeIn(); // //淡入動畫用法2: fadeIn(2000); 毫秒值 // $("div").fadeIn(2000); // //經過控制 透明度和display //淡入動畫用法3: fadeIn(字符串); slow慢:600ms normal正常:400ms fast快:200ms // $("div").fadeIn("slow"); // $("div").fadeIn("fast"); // $("div").fadeIn("normal"); //淡入動畫用法4: fadeIn(毫秒值,回調函數[顯示完畢執行什麼]); // $("div").fadeIn(5000,function () { // alert("動畫執行完畢!"); // }); }) //滑出動畫 $("button:eq(1)").click(function () { // //滑出動畫用法1: fadeOut(); 不加參數 $("div").fadeOut(); // //滑出動畫用法2: fadeOut(2000); 毫秒值 // $("div").fadeOut(2000); //經過這個方法實現的:display: none; // //經過控制 透明度和display //滑出動畫用法3: fadeOut(字符串); slow慢:600ms normal正常:400ms fast快:200ms // $("div").fadeOut("slow"); // $("div").fadeOut("fast"); // $("div").fadeOut("normal"); //滑出動畫用法1: fadeOut(毫秒值,回調函數[顯示完畢執行什麼]); // $("div").fadeOut(2000,function () { // alert("動畫執行完畢!"); // }); }) $("button:eq(2)").click(function () { //滑入滑出切換 //一樣有四種用法 $("div").fadeToggle(1000); }) $("button:eq(3)").click(function () { //改透明度 //一樣有四種用法 $("div").fadeTo(1000, 0.5, function () { alert(1); }); }) }) </script> </head> <body> <button>淡入</button> <button>淡出</button> <button>切換</button> <button>改透明度爲0.5</button> <div></div> </body> </html>