jQuery基礎–動畫操作
- 2019 年 10 月 10 日
- 筆記
- 三組基本動畫


<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div { width: 400px; height: 400px; background-color: pink; display: none; } </style> </head> <body> <input type="button" value="顯示"> <input type="button" value="隱藏"> <div></div> <script src="jquery-1.12.4.js"></script> <script> $(function () { $("input").eq(0).click(function () { //show不傳參數,沒有動畫效果 //$("div").show(); //show(speed) //speed:動畫的持續時間 可以是毫秒值 還可以是固定字符串 //fast:200ms normal:400ms slow:600 //$("div").show("ddd"); // show([speed], [callback]) $("div").show(1000, function () { console.log("哈哈,動畫執行完成啦"); }) }); $("input").eq(1).click(function () { $("div").hide(); }) }); </script> </body> </html>
滑入滑出
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div { width: 400px; height: 400px; background-color: pink; display: none; } </style> </head> <body> <input type="button" value="顯示"> <input type="button" value="隱藏"> <input type="button" value="切換"> <div></div> <script src="jquery-1.12.4.js"></script> <script> $(function () { //滑入(slideDown) 滑出:slideU $("input").eq(0).click(function () { //slideDown:如果不傳參數,有一個默認值normal //$("div").slideDown(); //$("div").slideDown(1000); $("div").slideDown(1000, function () { console.log("額呵呵"); }); }); $("input").eq(1).click(function () { $('div').slideUp(); }) $("input").eq(2).click(function () { //如果是滑入狀態,就執行滑出的動畫, $('div').slideToggle(); }) }); </script> </body> </html>
淡入淡出
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div { width: 400px; height: 400px; background-color: pink; display: none; } </style> </head> <body> <input type="button" value="顯示"> <input type="button" value="隱藏"> <input type="button" value="切換"> <div></div> <script src="jquery-1.12.4.js"></script> <script> $(function () { //淡入:fadeIn 淡出:fadeOut 切換:fadeToggle $("input").eq(0).click(function () { $("div").fadeIn(2000); }); $("input").eq(1).click(function () { $("div").fadeOut(1000); }) $("input").eq(2).click(function () { //如果是滑入狀態,就執行滑出的動畫, $('div').fadeToggle(); }) }); </script> </body> </html>
下拉菜單案例
<!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-image: url(imgs/bg.jpg); } .wrap li { background-image: url(imgs/libg.jpg); } .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-1.12.4.js"></script> <script> $(function () { //mouseover:鼠標經過事件 //mouseout:鼠標離開事件 //mouseenter:鼠標進入事件 //mouseleave:鼠標離開事件 var $li = $(".wrap>ul>li"); //給li註冊鼠標經過事件,讓自己的ul顯示出來 $li.mouseenter(function () { //找到所有的兒子,並且還得是ul //stop:停止當前正在執行的動畫 $(this).children("ul").stop().slideDown(); }); $li.mouseleave(function () { $(this).children("ul").stop().slideUp(); }); }); </script> </head> <body> <div class="wrap"> <ul> <li> <a href="javascript:void(0);">一級菜單1</a> <ul class="ul"> <li><a href="javascript:void(0);">二級菜單11</a></li> <li><a href="javascript:void(0);">二級菜單12</a></li> <li><a href="javascript:void(0);">二級菜單13</a></li> </ul> </li> <li> <a href="javascript:void(0);">一級菜單2</a> <ul> <li><a href="javascript:void(0);">二級菜單21</a></li> <li><a href="javascript:void(0);">二級菜單22</a></li> <li><a href="javascript:void(0);">二級菜單23</a></li> </ul> </li> <li> <a href="javascript:void(0);">一級菜單3</a> <ul> <li><a href="javascript:void(0);">二級菜單31</a></li> <li><a href="javascript:void(0);">二級菜單32</a></li> <li><a href="javascript:void(0);">二級菜單33</a></li> </ul> </li> </ul> </div> </body> </html>
輪播圖案例
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>京東商城</title> <style> * { margin: 0; padding: 0; list-style: none; } .slider { height: 340px; width: 790px; margin: 100px auto; position: relative; } .slider li { position: absolute; display: none; } .slider li:first-child { display: block; } .arrow { display: none; } .slider:hover .arrow { display: block; } .arrow-left, .arrow-right { font-family: "SimSun", "宋體"; width: 30px; height: 60px; background-color: rgba(0, 0, 0, 0.1); position: absolute; top: 50%; margin-top: -30px; cursor: pointer; text-align: center; line-height: 60px; color: #fff; font-weight: 700; font-size: 30px; } .arrow-left:hover, .arrow-right:hover { background-color: rgba(0, 0, 0, .5); } .arrow-left { left: 0; } .arrow-right { right: 0; } </style> </head> <body> <div class="slider"> <ul> <li><a href="#"><img src="images/1.jpg" alt=""></a></li> <li><a href="#"><img src="images/2.jpg" alt=""></a></li> <li><a href="#"><img src="images/3.jpg" alt=""></a></li> <li><a href="#"><img src="images/4.jpg" alt=""></a></li> <li><a href="#"><img src="images/5.jpg" alt=""></a></li> <li><a href="#"><img src="images/6.jpg" alt=""></a></li> <li><a href="#"><img src="images/7.jpg" alt=""></a></li> <li><a href="#"><img src="images/8.jpg" alt=""></a></li> </ul> <!--箭頭--> <div class="arrow"> <span class="arrow-left"><</span> <span class="arrow-right">></span> </div> </div> <script src="jquery-1.12.4.js"></script> <script> $(function () { var count = 0; $(".arrow-right").click(function () { count++; if(count == $(".slider li").length){ count = 0; } console.log(count); //讓count漸漸的顯示,其他兄弟漸漸的隱藏 $(".slider li").eq(count).fadeIn().siblings("li").fadeOut(); }); $(".arrow-left").click(function () { count--; if(count == -1){ count = $(".slider li").length - 1; } console.log(count); //讓count漸漸的顯示,其他兄弟漸漸的隱藏 $(".slider li").eq(count).fadeIn().siblings("li").fadeOut(); }) }); </script> </body> </html>
- 自定義動畫
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div { width: 100px; height: 100px; background-color: pink; position: absolute; } #box2 { background-color: blue; margin-top: 150px; } #box3 { background-color: yellowgreen; margin-top: 300px; } </style> </head> <body> <input type="button" value="開始"> <input type="button" value="結束"> <div id="box1"></div> <div id="box2"></div> <div id="box3"></div> <script src="jquery-1.12.4.js"></script> <script> $(function () { $("input").eq(0).click(function () { //第一個參數:對象,裏面可以傳需要動畫的樣式 //第二個參數:speed 動畫的執行時間 //第三個參數:動畫的執行效果 //第四個參數:回調函數 $("#box1").animate({left:800}, 8000); //swing:鞦韆 搖擺 $("#box2").animate({left:800}, 8000, "swing"); //linear:線性 勻速 $("#box3").animate({left:800}, 8000, "linear", function () { console.log("hahaha"); }); }) }); </script> </body> </html>
手風琴案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { margin: 0; padding: 0; } ul { list-style: none; width: 1300px; } #box { width: 1200px; height: 400px; border: 2px solid red; margin: 100px auto; } #box li { width: 240px; height: 400px; /*border: 1px solid #000;*/ float: left; } </style> </head> <body> <div id="box"> <ul> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> </div> <script src="../jquery-1.12.4.js"></script> <script> $(function () { var $li = $("#box li"); for (var i = 0; i < $li.length; i++) { $li.eq(i).css("backgroundImage", "url(images/" + (i + 1) + ".jpg)"); } //給所有的li註冊鼠標經過事件 $li.mouseenter(function () { $(this).stop().animate({width:800}).siblings().stop().animate({width:100}); }).mouseleave(function () { $li.stop().animate({width:240}); }); }); </script> </body> </html>
動畫隊列
$(function () { $("#btn").click(function () { //把這些動畫存儲到一個動畫隊列裏面 $("div").animate({left:800}) .animate({top:400}) .animate({width:300,height:300}) .animate({top:0}) .animate({left:0}) .animate({width:100,height:100}) }) });
停止動畫操作
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div { width: 400px; height: 400px; background-color: pink; display: none; } </style> </head> <body> <input type="button" value="開始"> <input type="button" value="結束"> <div></div> <script src="jquery-1.12.4.js"></script> <script> $(function () { $("input").eq(0).click(function () { $("div").slideDown(4000).slideUp(4000); }); $("input").eq(1).click(function () { //stop:停止當前正在執行的動畫 //clearQueue:是否清除動畫隊列 true false //jumpToEnd:是否跳轉到當前動畫的最終效果 true false //.stop().animate(); $("div").stop(true, true); }) }); </script> </body> </html>