1. 程式人生 > >A quick review of jQuery

A quick review of jQuery

1. 下載 jQuery

可以通過下面的標記把 jQuery 新增到網頁中,請注意,<script> 標籤應該位於頁面的 <head> 部分。

<head>
<script type="text/javascript" src="jquery.js"></script>
</head>

法②從 Google 或 Microsoft 載入 CDN jQuery 核心檔案(推薦,可提供使用者的載入速度)

//使用 Microsoft 的 CDN
<head>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery
/jquery-1.4.min.js"></script>
</head>

2. 語法 

通過 jQuery,您可以選取(查詢,query) HTML 元素,並對它們執行“操作”(actions)

//演示了 jQuery 的 hide() 函式,隱藏了 HTML 文件中所有的 <p> 元素。
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$("p").hide();
});
});
</script>
</head>

知識點:選擇器 (元素、屬性、CSS)

//jQuery CSS 選擇器可用於改變 HTML 元素的 CSS 屬性。
……
$(document).ready(function(){
  $("button").click(function(){
    $("p").css("background-color","red");
  });
});
……

3. jQuery 效果 

3.1 隱藏和顯示

$(selector).hide(speed,callback);

可選的 speed 引數規定隱藏/顯示的速度,可以取以下值:"slow"、"fast" 或毫秒。

可選的 callback 引數是隱藏或顯示完成後所執行的函式名稱。

使用 toggle() 方法來切換 hide() 和 show() 方法:

……
$("button").click(function(){
  $("p").toggle(1000);     //速度值為1000毫秒
});
……

3.2 淡入淡出效果

jQuery 擁有下面四種 fade 方法:

  • fadeIn()      // 淡入
  • fadeOut()      // 淡出
  • fadeToggle()      // 淡入淡出切換
  • fadeTo()      // 淡入到指定透明度,必須規定效果時長
//下面的例子演示了帶有不同引數的 fadeIn() 方法:
$("button").click(function(){
  $("#div1").fadeIn();
  $("#div2").fadeIn("slow");
  $("#div3").fadeIn(3000);
});
//不透明度值介於 0 與 1 之間
$("button").click(function(){
  $("#div1").fadeTo("slow",0.15);
  $("#div2").fadeTo("slow",0.4);
  $("#div3").fadeTo(3000,0.7);
});

3.3 滑動

jQuery 擁有以下滑動方法:

  • slideDown()      //向下滑動元素
  • slideUp()      //向上滑動元素
  • slideToggle()      //向上下切換滑動元素

語法:$(selector).slideDown(speed,callback);

3.4 動畫

jQuery animate() 方法用於建立自定義動畫,語法:$(selector).animate({params},speed,callback);

必需的 params 引數定義形成動畫的 CSS 屬性。記得更改元素的position屬性。

<head>
<script src="/jquery/jquery-1.11.1.min.js">
</script>
<script> 
$(document).ready(function(){
  $("button").click(function(){
    $("div").animate({left:'250px'});
  });
});
</script> 
</head>
 
<body>
<button>開始動畫</button>
<p>預設情況下,所有 HTML 元素的位置都是靜態的,並且無法移動。如需對位置進行操作,記得首先把元素的 CSS position 屬性設定為 relative、fixed 或 absolute。</p>
<div style="background:#98bf21;height:100px;width:100px;position:absolute;">
</div>

請注意,生成動畫的過程中可同時使用多個屬性:

$("button").click(function(){
  $("div").animate({
    left:'250px',
    opacity:'0.5',
    height:'150px',
    width:'150px'
  });
}); 

當使用 animate() 時,必須使用 Camel 標記法書寫所有的屬性名,比如,必須使用 paddingLeft 而不是 padding-left,使用 marginRight 而不是 margin-right,等等。

如果需要生成顏色動畫,您需要從 jQuery.com 下載 Color Animations 外掛。

$("button").click(function(){
  $("div").animate({
    left:'250px',
    height:'+=150px',  //可使用相對值
    width:'+=150px'
  });
});

您甚至可以把屬性的動畫值設定為 "show"、"hide" 或 "toggle":

$("button").click(function(){
  $("div").animate({
    height:'toggle'
  },3000);
});

使用佇列功能

//把 <div> 元素移動到右邊,然後增加文字的字號:
<script src="/jquery/jquery-1.11.1.min.js"></script>
<script> 
$(document).ready(function(){
  $("button").click(function(){
    var div=$("div");  
    div.animate({left:'100px'},"slow");
    div.animate({fontSize:'3em'},"slow");
  });
});
</script> 
</head>

<body>

<button>開始動畫</button>
<p>預設情況下,所有 HTML 元素的位置都是靜態的,並且無法移動。如需對位置進行操作,記得首先把元素的 CSS position 屬性設定為 relative、fixed 或 absolute。</p>
<div style="background:#98bf21;height:100px;width:200px;position:absolute;">HELLO</div>

</body>

3.5 jQuery stop() 停止動畫  

語法:$(selector).stop(stopAll,goToEnd);

可選的 stopAll 引數規定是否應該清除動畫佇列。預設是 false,即僅停止活動的動畫,允許任何排入佇列的動畫向後執行。

可選的 goToEnd 引數規定是否立即完成當前動畫。預設是 false。

因此,預設地,stop() 會清除在被選元素上指定的當前動畫。

<head>
<script src="/jquery/jquery-1.11.1.min.js">
</script>
<script> 
$(document).ready(function(){
  $("#start").click(function(){
    $("div").animate({left:'100px'},5000);
    $("div").animate({fontSize:'3em'},5000);
  });
  
  $("#stop").click(function(){
    $("div").stop();
  });

  $("#stop2").click(function(){
    $("div").stop(true);
  });

  $("#stop3").click(function(){
    $("div").stop(true,true);
  });
  
});
</script> 
</head>
<body>

<button id="start">開始</button>
<button id="stop">停止</button>
<button id="stop2">停止所有</button>
<button id="stop3">停止但要完成</button>
<p><b>"開始"</b> 按鈕會啟動動畫。</p>
<p><b>"停止"</b> 按鈕會停止當前活動的動畫,但允許已排隊的動畫向前執行。</p>
<p><b>"停止所有"</b> 按鈕停止當前活動的動畫,並清空動畫佇列;因此元素上的所有動畫都會停止。</p>
<p><b>"停止但要完成"</b> 會立即完成當前活動的動畫,然後停下來。</p> 

<div style="background:#98bf21;height:100px;width:200px;position:absolute;">HELLO</div>

</body>

4. JQuery Callback函式

當動畫 100% 完成後,即呼叫 Callback 函式。

$(document).ready(function(){
  $("button").click(function(){
  $("p").hide(1000,function(){
    alert("The paragraph is now hidden");
    });
  });
});

5. jQuery - Chaining

Chaining 允許我們在一條語句中允許多個 jQuery 方法(在相同的元素上)。

$("#p1").css("color","red").slideUp(2000).slideDown(2000);

6. jQuery HTML  (待……)

三個簡單實用的用於 DOM 操作的 jQuery 方法:

  • text() - 設定或返回所選元素的文字內容
  • html() - 設定或返回所選元素的內容(包括 HTML 標記)
  • val() - 設定或返回表單欄位的值