jQuery動畫分爲兩種分別是預約義動畫和自定義動畫css
示例代碼:jquery
<script src="js/jquery.js"></script> <style> #box { width: 200px; height: 200px; background-color: lightcoral; } </style> </head> <body> <div id="box"></div> <script> /* 顯示與隱藏 1.無動畫版本 * show() - 顯示 * hide() - 隱藏 2.有動畫版本 - 同時改變寬度和高度 * show(speed, callback) * speed - 動畫執行的時長,單位爲毫秒 * callback - 動畫執行完畢後的回調函數 * hide(speed, callback) * speed - 動畫執行的時長,單位爲毫秒 * callback - 動畫執行完畢後的回調函數 */ $('#box').hide(3000, function(){ $('#box').show(3000); }); </script> </body>
slideDown()和slideUp()只存在具備具備動畫效果的方法併發
示例代碼:ide
<script src="js/jquery.js"></script> <style> #box { width: 200px; height: 200px; background-color: lightcoral; } </style> </head> <body> <div id="box"></div> <script> /* 滑動式動畫 - slideUp()和slideDown() * 注意 - 沒有無動畫版本(底層代碼預約義動畫執行的時長) * 效果 - 改變指定元素的高度 */ $('#box').slideUp(3000); $('#box').slideDown(3000); </script> </body>
示例代碼:函數
<script src="js/jquery.js"></script> <style> #box { width: 200px; height: 200px; background-color: lightcoral; } </style> </head> <body> <div id="box"></div> <script> // 改變的元素的透明度 $('#box').fadeOut(3000); $('#box').fadeIn(3000); </script> </body>
示例代碼:動畫
<script src="js/jquery.js"></script> <style> #box{ width: 300px; height: 300px; background-color: cyan; position: absolute; } </style> </head> <body> <div id="box"></div> <script> /* animate()方法 - 表示自定義動畫方法 1. animate(properties,duration,callback) * properties - 表示CSS樣式屬性 * 設置動畫執行結束的樣式屬性值 * duration - 表示動畫執行的時長,以毫秒爲單位 * callback - 表示動畫執行完畢後的回調函數 2. animate(properties, options) * properties - 表示CSS樣式屬性 * 設置動畫執行結束的樣式屬性 * options - 表示設置動畫的相關參數 * duration - 表示動畫執行的時長,以毫秒爲單位 * complete - 表示動畫執行完畢後的回調函數 * queue - 布爾值,設置是否添加到動畫隊列中 */ /*$('#box').animate({ width :800, height :600 },5000);*/ /*$('#box').animate({ left :200 },3000);*/ $('#box').animate({ left : 100 }, { speed : 3000 }); </script> </body>
示例代碼:插件
<script src="js/jquery.js"></script> <style> #box { width: 200px; height: 200px; background-color: lightcoral; position: absolute; } </style> </head> <body> <div id="box"></div> <script> /* 併發效果 - 就是指多個動畫同時執行 * 多個CSS的樣式屬性值同時改變 - 動畫多個值綜合效果 */ /*$('#box').animate({ left : 400, top : 400 }, 3000);*/ /* 排隊效果 - 就是指多個動畫按照定義的前後順序執行 * 多個CSS的樣式屬性值前後改變 */ /*$('#box').animate({ left : 400 }, 3000, function(){ $('#box').animate({ top : 400 }, 3000); });*/ // queue - 用於控制當前的動畫效果是併發仍是排隊效果 $('#box').animate({ left : 400 }, { duration : 3000 }).animate({ top : 400 }, { duration : 3000, queue : true }); </script> </body>
stop(queue)方法的第一個參數code
stop(queue, gotoEnd)方法的第二個參數orm
示例代碼:隊列
<script src="js/jquery.js"></script> <style> #box { width: 200px; height: 200px; background-color: lightcoral; position: absolute; } </style> </head> <body> <button id="start">開始</button> <button id="stop">中止</button> <div id="box"></div> <script> $('#start').click(function(){ $('#box').animate({ left : 800 }, 3000).animate({ top : 600 }, 3000); }); $('#stop').click(function(){ /* * stop()方法沒有接收任何參數時 - 當即中止執行動畫 * stop(queue)方法的第一個參數 * false - 表示中止當前動畫,但隊列中的動畫繼續執行 * true - 表示中止當前動畫,而且清空動畫隊列 * stop(queue, gotoEnd)方法的第二個參數 * false - 不會作任何處理 * true - 表示中止當前動畫,而且將指定元素設置爲動畫執行完畢後的樣式 */ $('#box').stop(true, false); }); </script> </body>
示例代碼:
<script src="js/jquery.js"></script> <style> #box { width: 200px; height: 200px; background-color: lightcoral; position: absolute; } </style> </head> <body> <div id="box"></div> <script> $('#box').animate({ left: 800 }, 3000).delay(1000).animate({ top: 600 }, 3000); </script> </body>