JQuery動畫詳解(四)

來源:互聯網
上載者:User

標籤:

一:基本動畫
show()
顯示隱藏的匹配元素。
這個就是 ‘show( speed, [callback] )‘ 無動畫的版本。如果選擇的元素是可見的,這個方法將不會改變任何東西。無論這個元素是通過hide()方法隱藏的還是在CSS裡設定了display:none;,這個方法都將有效。
傳回值
jQuery
樣本
顯示所有段落
HTML 程式碼:
<p style="display: none">Hello</p>
jQuery 代碼:
$("p").show()

     show(speed,[callback])
以優雅的動畫顯示所有匹配的元素,並在顯示完成後可選地觸發一個回呼函數。
可以根據指定的速度動態地改變每個匹配元素的高度、寬度和不透明度。
傳回值
jQuery
參數
speed (String,Number) : 三種預定速度之一的字串("slow", "normal", or "fast")或表示動畫時間長度的毫秒數值(如:1000)
callback (Function) : (Optional) 在動畫完成時執行的函數,每個元素執行一次。
樣本
用緩慢的動畫將隱藏的段落顯示出來,曆時600毫秒。
HTML 程式碼:
<p style="display: none">Hello</p>
jQuery 代碼:
$("p").show("slow");

 

用迅速的動畫將隱藏的段落顯示出來,曆時200毫秒。並在之後執行反饋!
HTML 程式碼:
<p style="display: none">Hello</p>
jQuery 代碼:
$("p").show("fast",function(){
   $(this).text("Animation Done!");
 });
將隱藏的段落用將近4秒的時間顯示出來。。。並在之後執行一個反饋。。。
HTML 程式碼:
<p style="display: none">Hello</p>
jQuery 代碼:
$("p").show(4000,function(){
  $(this).text("Animation Done...");
 });

 

hide()
隱藏顯示的元素
這個就是 ‘hide( speed, [callback] )‘ 的無動畫版。如果選擇的元素是隱藏的,這個方法將不會改變任何東西。
傳回值
jQuery
樣本
隱藏所有段落
jQuery 代碼:
$("p").hide()

 

hide(speed,[callback])
以優雅的動畫隱藏所有匹配的元素,並在顯示完成後可選地觸發一個回呼函數。
可以根據指定的速度動態地改變每個匹配元素的高度、寬度和不透明度。
傳回值
jQuery
參數
speed (String,Number) :三種預定速度之一的字串("slow", "normal", or "fast")或表示動畫時間長度的毫秒數值(如:1000)
callback (FunctionFunction) : (Optional) 在動畫完成時執行的函數,每個元素執行一次。

 

樣本
用600毫秒的時間將段落緩慢的隱藏
jQuery 代碼:
$("p").hide("slow");
用200毫秒將段落迅速隱藏,之後彈出一個對話方塊。
jQuery 代碼:
$("p").hide("fast",function(){   alert("Animation Done."); });

 

toggle()
切換元素的可見狀態。
如果元素是可見的,切換為隱藏的;如果元素是隱藏的,切換為可見的。
傳回值
jQuery
樣本
切換所有段落的可見狀態。
HTML 程式碼:
<p>Hello</p><p style="display: none">Hello Again</p>
jQuery 代碼:
$("p").toggle()
結果:
<p tyle="display: none">Hello</p><p style="display: block">Hello Again</p>
代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>詳解jQuery動畫</title><style type="text/css">p{width:200px;height:200px;background-color:Red;border-style:solid}</style> <!--   引入jQuery -->    <script src="../scripts/jquery-1.2.6.js" type="text/javascript"></script>    <script src="../scripts/jquery-1.2.6-vsdoc-cn.js" type="text/javascript"></script>     <script type="text/javascript">     $(document).ready(function() {                 $("#btn1").toggle(function() {                     $("p").show(2000, function() {                         $("#btn1").val("hide");                     });                 },                 function() {                     $("p").hide(2000, function() {                         $("#btn1").val("show");                     })                 }                 );         $("#btn1").click(function() {             $("p").toggle(2000);         });         $("#btn2").click(function() {             $("p").slideDown(2000, function() { alert("ok"); });         });         $("#btn3").click(function() {             $("p").slideUp(2000, function() { alert("ok"); });         });         $("#btn4").click(function() {             $("p").slideToggle(2000, function() { alert("ok"); });         });         $("#btn5").click(function() {             $("p").fadeIn(2000, function() { alert("ok"); });         });         $("#btn6").click(function() {             $("p").fadeOut("slow", function() { alert("ok"); });         });         $("#btn7").click(function() {             $("p").fadeTo("slow",0.66, function() { alert("ok"); });         });         $("#btn8").click(function() {            $("p").animate({              width: "90%",             height: "100%",             fontSize: "10em",              borderWidth: 10              }, 1000 );            });             })       </script></head><body ><p style="display:none">Hellow!</p><input type="button" id="btn1" value="Show" /><input type="button" id="btn2" value="SolidDown" /><input type="button" id="btn3" value="SolidUp" /><input type="button" id="btn4" value="SolidToggle" /><input type="button" id="btn5" value="fadeIn" /><input type="button" id="btn6" value="fadeOut" /><input type="button" id="btn7" value="fadeTo" /><input type="button" id="btn8" value="Animate" /></body></html> 

 

二: jQuery中的滑動
slideDown(speed,[callback])
通過高度變化(向下增大)來動態地顯示所有匹配的元素,在顯示完成後可選地觸發一個回呼函數。
這個動畫效果只調整元素的高度,可以使匹配的元素以“滑動”的方式顯示出來。
傳回值
jQuery
參數
speed (String,Number) :三種預定速度之一的字串("slow", "normal", or "fast")或表示動畫時間長度的毫秒數值(如:1000)
callback (FunctionFunction) : (可選) 在動畫完成時執行的函數

樣本
用600毫秒緩慢的將段落滑下
jQuery 代碼:
$("p").slideDown("slow");
用200毫秒快速將段落滑下,之後彈出一個對話方塊
<p style="display: none;width:200px;height:200px;">Hello</p>
jQuery 代碼:
$("p").slideDown("fast",function(){
  alert("Animation Done.");
 });

 

slideUp(speed,[callback])
通過高度變化(向上減小)來動態地隱藏所有匹配的元素,在隱藏完成後可選地觸發一個回呼函數。
這個動畫效果只調整元素的高度,可以使匹配的元素以“滑動”的方式隱藏起來。
傳回值
jQuery
參數
speed (String,Number) : 三種預定速度之一的字串("slow", "normal", or "fast")或表示動畫時間長度的毫秒數值(如:1000)
callback (Function) : (可選) 在動畫完成時執行的函數


樣本
用600毫秒緩慢的將段落滑上
jQuery 代碼:
$("p").slideUp("slow");
用200毫秒快速將段落滑上,之後彈出一個對話方塊
jQuery 代碼:
$("p").slideUp("fast",function(){
   alert("Animation Done.");
 });


slideToggle(speed,[callback])
通過高度變化來切換所有匹配元素的可見度,並在切換完成後可選地觸發一個回呼函數。
這個動畫效果只調整元素的高度,可以使匹配的元素以“滑動”的方式隱藏或顯示。
傳回值
jQuery
參數
speed (String,Number) : 三種預定速度之一的字串("slow", "normal", or "fast")或表示動畫時間長度的毫秒數值(如:1000)
callback (Function) : (可選) 在動畫完成時執行的函數
樣本
用600毫秒緩慢的將段落滑上或滑下
jQuery 代碼:
$("p").slideToggle("slow");
用200毫秒快速將段落滑上或滑下,之後彈出一個對話方塊
jQuery 代碼:
$("p").slideToggle("fast",function(){
  alert("Animation Done.");
});


三:jQuery中淡入淡出效果

fadeIn(speed,[callback])通過不透明度的變化來實現所有匹配元素的淡入效果,並在動畫完成後可選地觸發一個回呼函數。這個動畫只調整元素的不透明度,也就是說所有匹配的元素的高度和寬度不會發生變化。傳回值jQuery參數speed (String,Number) : 三種預定速度之一的字串("slow", "normal", or "fast")或表示動畫時間長度的毫秒數值(如:1000)callback (Function) : (Optional) (可選) 在動畫完成時執行的函數 樣本
用600毫秒緩慢的將段落淡入
jQuery 代碼:
$("p").fadeIn("slow");
用200毫秒快速將段落淡入,之後彈出一個對話方塊
jQuery 代碼:
$("p").fadeIn("fast",function(){
  alert("Animation Done.");
 });  fadeOut(speed,[callback])
通過不透明度的變化來實現所有匹配元素的淡出效果,並在動畫完成後可選地觸發一個回呼函數。
這個動畫只調整元素的不透明度,也就是說所有匹配的元素的高度和寬度不會發生變化。
傳回值
jQuery
參數
speed (String,Number) :三種預定速度之一的字串("slow", "normal", or "fast")或表示動畫時間長度的毫秒數值(如:1000)

callback (Function) :(可選) 在動畫完成時執行的函數
樣本
用600毫秒緩慢的將段落淡出
jQuery 代碼:
$("p").fadeOut("slow");
用200毫秒快速將段落淡出,之後彈出一個對話方塊
jQuery 代碼:
$("p").fadeOut("fast",function(){
   alert("Animation Done.");
 });


fadeTo(speed,opacity,[callback])
把所有匹配元素的不透明度以漸進方式調整到指定的不透明度,並在動畫完成後可選地觸發一個回呼函數。
這個動畫只調整元素的不透明度,也就是說所有匹配的元素的高度和寬度不會發生變化。
傳回值
jQuery
參數
speed (String,Number) : 三種預定速度之一的字串("slow", "normal", or "fast")或表示動畫時間長度的毫秒數值(如:1000)
opacity (Number) : 要調整到的不透明度值(0到1之間的數字).
callback (Function) : (可選) 在動畫完成時執行的函數


樣本
用600毫秒緩慢的將段落的透明度調整到0.66,大約2/3的可見度
jQuery 代碼:
$("p").fadeTo("slow", 0.66);
用200毫秒快速將段落的透明度調整到0.25,大約1/4的可見度,之後彈出一個對話方塊
jQuery 代碼:
$("p").fadeTo("fast", 0.25, function(){
   alert("Animation Done.");
});

代碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>詳解jQuery動畫</title><style type="text/css">p{width:200px;height:200px;background-color:Red;border-style:solid}</style> <!--   引入jQuery -->    <script src="../scripts/jquery-1.2.6.js" type="text/javascript"></script>    <script src="../scripts/jquery-1.2.6-vsdoc-cn.js" type="text/javascript"></script>     <script type="text/javascript">     $(document).ready(function() {         $("#btn1").click(function() {             $("p").animate({ left: ‘+200px‘ }, "slow");         })         $("#btn2").click(function() {             $("p").animate({ left: ‘-200px‘ }, "slow");         })         $("#btn3").click(function() {                          $("p").animate({ height: ‘toggle‘, opacity: ‘toggle‘ }, "slow");         })        $("#btn4").click(function() {            $("#p2").animate({ left: 200, opacity: ‘show‘ }, { duration: 500 });         })     })       </script></head><body ><p id="p1" style="display: block;left:20px;top:40px;position:absolute;width:200px;height:200px;background-color:Red;border-style:solid;border-width:1px;border-color:Black;">Hello</p> <p id="p2" style="display: none;left:20px;top:40px;position:absolute;width:200px;height:200px;background-color:Red;border-style:solid;border-width:1px;border-color:Black;">Hello</p> <input type="button" id="btn1" value="Right" /><input type="button" id="btn2" value="Left" /><input type="button" id="btn3" value="Toggle" /><input type="button" id="btn4" value="Show" /></body></html> 

 

 四:jQuery中的自訂動畫
animate(params[,duration[,easing[,callback]]])
用於建立自訂動畫的函數。
這個函數的關鍵在於指定動畫形式及結果樣式屬性對象。這個對象中每個屬性都表示一個可以變化的樣式屬性(如“height”、“top”或“opacity”)。 注意:所有指定的屬性必須用駱駝形式,比如用marginLeft代替margin-left.
而每個屬性的值表示這個樣式屬性到多少時動畫結束。如果是一個數值,樣式屬性就會從當前的值漸層到指定的值。如果使用的是“hide”、“show”或“toggle”這樣的字串值,則會為該屬性調用預設的動畫形式。
在 jQuery 1.2 中,你可以使用 em 和 % 單位。另外,在 jQuery 1.2 中,你可以通過在屬性值前面指定 "+=" 或 "-=" 來讓元素做相對運動。
傳回值
jQuery
參數
params (Options) : 一組包含作為動畫屬性和終值的樣式屬性和及其值的集合
duration (String,Number) : (可選) 三種預定速度之一的字串("slow", "normal", or "fast")或表示動畫時間長度的毫秒數值(如:1000)
callback (Function) : (可選) 在動畫完成時執行的函數

樣本1
點擊按鈕後div元素的幾個不同屬性一同變化
HTML 程式碼:
<button id="go"> Run</button>
<div id="block">Hello!</div>
jQuery 代碼:
// 在一個動畫中同時應用三種類型的效果
$("#go").click(function(){
  $("#block").animate({
    width: "90%",
    height: "100%",
    fontSize: "10em",
   borderWidth: 10
 }, 1000 );
});

 讓指定元素左右移動
HTML 程式碼:
<p style="display: none;left:20px;top:20px;position:absolute;width:200px;height:200px;border-style:solid;border-width:1px;border-color:Black;">Hello</p>
jQuery 代碼:
$("#right").click(function(){
  $(“p").animate({left: ‘+50px‘}, "slow");
});
$("#left").click(function(){
  $(“p").animate({left: ‘-50px‘}, "slow");
});

 animate(params,options)
用於建立自訂動畫的函數。
這個函數的關鍵在於指定動畫形式及結果樣式屬性對象。這個對象中每個屬性都表示一個可以變化的樣式屬性(如“height”、“top”或“opacity”)。 注意:所有指定的屬性必須用駱駝形式,比如用marginLeft代替margin-left.
而每個屬性的值表示這個樣式屬性到多少時動畫結束。如果是一個數值,樣式屬性就會從當前的值漸層到指定的值。如果使用的是“hide”、“show”或“toggle”這樣的字串值,則會為該屬性調用預設的動畫形式。
在 jQuery 1.2 中,你可以使用 em 和 % 單位。另外,在 jQuery 1.2 中,你可以通過在屬性值前面指定 "+=" 或 "-=" 來讓元素做相對運動。
傳回值
jQuery
參數
params (Options) : 一組包含作為動畫屬性和終值的樣式屬性和及其值的集合
options (Options) : 一組包含動畫選項的值的集合。


選項
duration (String,Number) : (預設值: "normal") 三種預定速度之一的字串("slow", "normal", or "fast")或表示動畫時間長度的毫秒數值(如:1000)

complete (Function) : 在動畫完成時執行的函數
step (Callback) :
queue (Boolean) : (預設值: true) 設定為false將使此動畫不進入動畫隊列 (jQuery 1.2中新增)



樣本
第一個按鈕按了之後展示了不在隊列中的動畫。在div擴充到90%的同時也在增加字型,一旦字型改變完畢後,邊框的動畫才開始。
第二個按鈕按了之後就是一個傳統的鏈式動畫,即等前一個動畫完成後,後一個動畫才會開始.
HTML 程式碼:
<button id="go1"> Animate Block1</button>
<button id="go2"> Animate Block2</button>
<div id="block1">Block1</div><div id="block2">Block2</div>
jQuery 代碼:
$("#go1").click(function(){
  $("#block1").animate( { width: "90%"}, { queue: false, duration: 5000 } )
     .animate( { fontSize: ‘10em‘ } , 1000 )
     .animate( { borderWidth: 5 }, 1000);});
$("#go2").click(function(){
  $("#block2").animate( { width: "90%"}, 1000 )
    .animate( { fontSize: ‘10em‘ } , 1000 )
    .animate( { borderWidth: 5 }, 1000);
});

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>詳解jQuery動畫</title><style type="text/css">p{width:200px;height:200px;background-color:Red;border-style:solid}</style> <!--   引入jQuery -->    <script src="../scripts/jquery-1.2.6.js" type="text/javascript"></script>    <script src="../scripts/jquery-1.2.6-vsdoc-cn.js" type="text/javascript"></script>     <script type="text/javascript">     $(document).ready(function() {     $("#go1").click(function() { $("#block1").animate({ width: "90%" }, { queue: false, duration: 5000 }).animate({ fontSize: ‘10em‘ }, 1000).animate({ borderWidth: 5 }, 1000); });      $("#go2").click(function() { $("#block2").animate({ width: "90%" }, 1000).animate({ fontSize: ‘10em‘ }, 1000).animate({ borderWidth: 5 }, 1000); });      })       </script></head><body ><button id="go1">» Animate Block1</button><button id="go2">» Animate Block2</button><div id="block1">Block1</div><div id="block2">Block2</div> </body></html> 

 

JQuery動畫詳解(四)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.