HTML DOM中的DOM事件類型響應網站,各種響應事件。javascript
http://www.w3school.com.cn/jsref/dom_obj_event.asp //做爲一個代碼開發者,怎麼能夠少的了手冊呢css
在HTML頁面中添加新的元素方法:如需向 HTML DOM 添加新元素,您必須首先建立該元素(元素節點),而後向一個已存在的元素追加該元素。html
代碼以下:java
1 <!DOCTYPE html> 2 <html> 3 <body> 4 5 <div id="div1"> 6 <p id="p1">這是一個段落。</p> 7 <p id="p2">這是另外一個段落。</p> 8 </div> 9 10 <script> 11 var para=document.createElement("p"); 12 var node=document.createTextNode("這是新段落。"); 13 para.appendChild(node); 14 15 var element=document.getElementById("div1"); 16 element.appendChild(para); 17 </script> 18 19 </body> 20 </html>
代碼講解:node
例子解釋:jquery
這段代碼建立新的 <p> 元素:web
var para=document.createElement("p");
如需向 <p> 元素添加文本,您必須首先建立文本節點。這段代碼建立了一個文本節點:ajax
var node=document.createTextNode("這是新段落。");
而後您必須向 <p> 元素追加這個文本節點:編程
para.appendChild(node);
最後您必須向一個已有的元素追加這個新元素。api
這段代碼找到一個已有的元素:
var element=document.getElementById("div1");
這段代碼向這個已有的元素追加新元素:
element.appendChild(para);
在咱們的 JavaScript 教程的 HTML DOM 部分,您已經學到了:
循環遍歷對象的屬性:
1 var person={fname:"Bill",lname:"Gates",age:56}; 2 3 for (x in person) 4 { 5 txt=txt + person[x]; 6 }
Number 對象是原始數值的包裝對象。
var myNum=new Number(value); var myNum=Number(value);
參數 value 是要建立的 Number 對象的數值,或是要轉換成數字的值。
當 Number() 和運算符 new 一塊兒做爲構造函數使用時,它返回一個新建立的 Number 對象。若是不用 new 運算符,把 Number() 做爲一個函數來調用,它將把本身的參數轉換成一個原始的數值,而且返回這個值(若是轉換失敗,則返回 NaN)。
屬性 | 描述 |
---|---|
constructor | 返回對建立此對象的 Number 函數的引用。 |
MAX_VALUE | 可表示的最大的數。 |
MIN_VALUE | 可表示的最小的數。 |
NaN | 非數字值。 |
NEGATIVE_INFINITY | 負無窮大,溢出時返回該值。 |
POSITIVE_INFINITY | 正無窮大,溢出時返回該值。 |
prototype | 使您有能力向對象添加屬性和方法。 |
方法 | 描述 |
---|---|
toString | 把數字轉換爲字符串,使用指定的基數。 |
toLocaleString | 把數字轉換爲字符串,使用本地數字格式順序。 |
toFixed | 把數字轉換爲字符串,結果的小數點後有指定位數的數字。 |
toExponential | 把對象的值轉換爲指數計數法。 |
toPrecision | 把數字格式化爲指定的長度。 |
valueOf | 返回一個 Number 對象的基本數字值。 |
JS中string即字符串類型的對象所具備的對象屬性與方法:
indexOf() 方法如何使用 indexOf() 來定位字符串中某一個指定的字符首次出現的位置。
match() 方法如何使用 match() 來查找字符串中特定的字符,而且若是找到的話,則返回這個字符。
如何替換字符串中的字符 - replace()如何使用 replace() 方法在字符串中用某些字符替換另外一些字符。
您能夠將 Boolean 對象理解爲一個產生邏輯值的對象包裝器。
Boolean(邏輯)對象用於將非邏輯值轉換爲邏輯值(true 或者 false)。
使用關鍵詞 new 來定義 Boolean 對象。下面的代碼定義了一個名爲 myBoolean 的邏輯對象:
var myBoolean=new Boolean()
註釋:若是邏輯對象無初始值或者其值爲 0、-0、null、""、false、undefined 或者 NaN,那麼對象的值爲 false。不然,其值爲 true(即便當自變量爲字符串 "false" 時)!
Math(算數)對象的做用是:執行普通的算數任務。
Math 對象提供多種算數值類型和函數。無需在使用這個對象以前對它進行定義。
JavaScript 提供 8 種可被 Math 對象訪問的算數值:
這是在 Javascript 中使用這些值的方法:(與上面的算數值一一對應)
RegExp 對象有 3 個方法:test()、exec() 以及 compile()。
test() 方法檢索字符串中的指定值。返回值是 true 或 false。
var patt1=new RegExp("e"); document.write(patt1.test("The best things in life are free"));
因爲該字符串中存在字母 "e",以上代碼的輸出將是:
true
exec() 方法檢索字符串中的指定值。返回值是被找到的值。若是沒有發現匹配,則返回 null。
var patt1=new RegExp("e"); document.write(patt1.exec("The best things in life are free"));
因爲該字符串中存在字母 "e",以上代碼的輸出將是:
e
compile() 方法用於改變 RegExp。
compile() 既能夠改變檢索模式,也能夠添加或刪除第二個參數。
var patt1=new RegExp("e"); document.write(patt1.test("The best things in life are free")); patt1.compile("d"); document.write(patt1.test("The best things in life are free"));
因爲字符串中存在 "e",而沒有 "d",以上代碼的輸出是:
true false
全部瀏覽器都支持 window 對象。它表示瀏覽器窗口。
全部 JavaScript 全局對象、函數以及變量均自動成爲 window 對象的成員。
全局變量是 window 對象的屬性。
全局函數是 window 對象的方法。
甚至 HTML DOM 的 document 也是 window 對象的屬性之一:
一些其餘方法:
window.screen 對象包含有關用戶屏幕的信息。
window.screen 對象在編寫時能夠不使用 window 這個前綴。
一些屬性:
screen.availWidth 屬性返回訪問者屏幕的寬度,以像素計,減去界面特性,好比窗口任務欄。
window.location 對象用於得到當前頁面的地址 (URL),並把瀏覽器重定向到新的頁面。
window.location 對象在編寫時可不使用 window 這個前綴。
一些例子:
window.history 對象在編寫時可不使用 window 這個前綴。
爲了保護用戶隱私,對 JavaScript 訪問該對象的方法作出了限制。
一些方法:
警告框常常用於確保用戶能夠獲得某些信息。
當警告框出現後,用戶須要點擊肯定按鈕才能繼續進行操做。
alert("文本")
確認框用於使用戶能夠驗證或者接受某些信息。
當確認框出現後,用戶須要點擊肯定或者取消按鈕才能繼續進行操做。
若是用戶點擊確認,那麼返回值爲 true。若是用戶點擊取消,那麼返回值爲 false。
confirm("文本")
提示框常常用於提示用戶在進入頁面前輸入某個值。
當提示框出現後,用戶須要輸入某個值,而後點擊確認或取消按鈕才能繼續操縱。
若是用戶點擊確認,那麼返回值爲輸入的值。若是用戶點擊取消,那麼返回值爲 null。
prompt("文本","默認值")
經過使用 JavaScript,咱們有能力做到在一個設定的時間間隔以後來執行代碼,而不是在函數被調用後當即執行。咱們稱之爲計時事件。
在 JavaScritp 中使用計時事件是很容易的,兩個關鍵方法是:
var t=setTimeout("javascript語句",毫秒)
setTimeout() 方法會返回某個值。在上面的語句中,值被儲存在名爲 t 的變量中。假如你但願取消這個 setTimeout(),你可使用這個變量名來指定它。
setTimeout() 的第一個參數是含有 JavaScript 語句的字符串。這個語句可能諸如 "alert('5 seconds!')",或者對函數的調用,諸如 alertMsg()"。
第二個參數指示從當前起多少毫秒後執行第一個參數。
提示:1000 毫秒等於一秒。
clearTimeout(setTimeout_variable)
JavaScript 高級程序設計(特別是對瀏覽器差別的複雜處理),一般很困難也很耗時。
爲了應對這些調整,許多的 JavaScript (helper) 庫應運而生。
這些 JavaScript 庫常被稱爲 JavaScript 框架。
在本教程中,咱們將瞭解到一些廣受歡迎的 JavaScript 框架:
全部這些框架都提供針對常見 JavaScript 任務的函數,包括動畫、DOM 操做以及 Ajax 處理。
在本教程中,您將學習到如何開始使用它們,來使得 JavaScript 編程更容易、更安全且更有樂趣。
jQuery 是目前最受歡迎的 JavaScript 框架。
它使用 CSS 選擇器來訪問和操做網頁上的 HTML 元素(DOM 對象)。
jQuery 同時提供 companion UI(用戶界面)和插件。
許多大公司在網站上使用 jQuery:
1 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"> 2 </script>
Prototype 是一種庫,提供用於執行常見 web 任務的簡單 API。
API 是應用程序編程接口(Application Programming Interface)的縮寫。它是包含屬性和方法的庫,用於操做 HTML DOM。
Prototype 經過提供類和繼承,實現了對 JavaScript 的加強。
MooTools 也是一個框架,提供了可以使常見的 JavaScript 編程更爲簡單的 API。
MooTools 也含有一些輕量級的效果和動畫函數。
W3school 提供完整的 jQuery 參考手冊以及大量的在線實例。
在 W3School,您將找到包含全部 jQuery 對象和函數的完整參考手冊:
連接:http://www.w3school.com.cn/jquery/jquery_reference.asp
jQuery 語法是爲 HTML 元素的選取編制的,能夠對元素執行某些操做。
基礎語法是:$(selector).action()
$(this).hide() - 隱藏當前元素
$("p").hide() - 隱藏全部段落
$(".test").hide() - 隱藏全部 class="test" 的全部元素
$("#test").hide() - 隱藏全部 id="test" 的元素
提示:jQuery 使用的語法是 XPath 與 CSS 選擇器語法的組合。在本教程接下來的章節,您將學習到更多有關選擇器的語法。
您也許已經注意到在咱們的實例中的全部 jQuery 函數位於一個 document ready 函數中:
$(document).ready(function(){ --- jQuery functions go here ---- });
語法 | 描述 |
---|---|
$(this) | 當前 HTML 元素 |
$("p") | 全部 <p> 元素 |
$("p.intro") | 全部 class="intro" 的 <p> 元素 |
$(".intro") | 全部 class="intro" 的元素 |
$("#intro") | id="intro" 的元素 |
$("ul li:first") | 每一個 <ul> 的第一個 <li> 元素 |
$("[href$='.jpg']") | 全部帶有以 ".jpg" 結尾的屬性值的 href 屬性 |
$("div#intro .head") | id="intro" 的 <div> 元素中的全部 class="head" 的元素 |
JQUERY中的屬性選擇方案中通常都會用$("")來選取標籤或者選取某個標籤或者元素。
jQuery 是爲事件處理特別設計的。
jQuery 事件處理方法是 jQuery 中的核心函數。
事件處理程序指的是當 HTML 中發生某些事件時所調用的方法。術語由事件「觸發」(或「激發」)常常會被使用。
一般會把 jQuery 代碼放到 <head>部分的事件處理方法中:
語法:
$("button").click(function() {..some code... } )
經過事件觸發函數爲核心的JQUERY來進行的動態網頁。
語法簡介:點擊那個按鈕或時間函數,會在哪個標籤或元素處發生什麼動畫或動做。
jQuery 使用 $ 符號做爲 jQuery 的簡介方式。
某些其餘 JavaScript 庫中的函數(好比 Prototype)一樣使用 $ 符號。
jQuery 使用名爲 noConflict() 的方法來解決該問題。
var jq=jQuery.noConflict(),幫助您使用本身的名稱(好比 jq)來代替 $ 符號。
因爲 jQuery 是爲處理 HTML 事件而特別設計的,那麼當您遵循如下原則時,您的代碼會更恰當且更易維護:
下面是 jQuery 中事件經常使用方法的一些例子:
Event 函數 | 綁定函數至 |
---|---|
$(document).ready(function) | 將函數綁定到文檔的就緒事件(當文檔完成加載時) |
$(selector).click(function) | 觸發或將函數綁定到被選元素的點擊事件 |
$(selector).dblclick(function) | 觸發或將函數綁定到被選元素的雙擊事件 |
$(selector).focus(function) | 觸發或將函數綁定到被選元素的得到焦點事件 |
$(selector).mouseover(function) | 觸發或將函數綁定到被選元素的鼠標懸停事件 |
JQUERY中好玩的動畫演示及動態網頁講解
一:顯示與隱藏
經過 jQuery,您可使用 hide() 和 show() 方法來隱藏和顯示 HTML 元素:
(1):Jquery中的關於標籤的顯示與隱藏代碼以下:
$("#hide").click(function(){ $("p").hide(); }); $("#show").click(function(){ $("p").show(); });
2)語法:
$(selector).hide(speed,callback); $(selector).show(speed,callback);
可選的 speed 參數規定隱藏/顯示的速度,能夠取如下值:"slow"、"fast" 或毫秒。
可選的 callback 參數是隱藏或顯示完成後所執行的函數名稱。
下面的例子演示了帶有 speed 參數的 hide() 方法:
經過 jQuery,您可使用 toggle() 方法來切換 hide() 和 show() 方法。
顯示被隱藏的元素,並隱藏已顯示的元素:
$(selector).toggle(speed,callback);
可選的 speed 參數規定隱藏/顯示的速度,能夠取如下值:"slow"、"fast" 或毫秒。
可選的 callback 參數是 toggle() 方法完成後所執行的函數名稱。
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <script src="/jquery/jquery-1.11.1.min.js"></script> 5 <script type="text/javascript"> 6 $(document).ready(function(){ 7 $(".ex .hide").click(function(){ 8 $(this).parents(".ex").hide("slow"); 9 }); 10 }); 11 </script> 12 <style type="text/css"> 13 div.ex 14 { 15 background-color:#e5eecc; 16 padding:7px; 17 border:solid 1px #c3c3c3; 18 } 19 </style> 20 </head> 21 22 <body> 23 24 <h3>中國辦事處</h3> 25 <div class="ex"> 26 <button class="hide" type="button">隱藏</button> 27 <p>聯繫人:張先生<br /> 28 北三環中路 100 號<br /> 29 北京</p> 30 </div> 31 32 <h3>美國辦事處</h3> 33 <div class="ex"> 34 <button class="hide" type="button">隱藏</button> 35 <p>聯繫人:David<br /> 36 第五大街 200 號<br /> 37 紐約</p> 38 </div> 39 40 </body> 41 </html>
$(所要觸發的按鈕或其餘觸發函數介質).click(function(){
$("所須要隱藏的HTML元素").hide();
});
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <script src="/jquery/jquery-1.11.1.min.js""> 5 <script type="text/javascript"> 6 $(docment).reday(function(){ 7 $("#hide").click(function(){ 8 $("p").hide(); 9 }); 10 11 $("#show").click(function(){ 12 $("p1").show(); 13 }); 14 }); 15 </script> 16 </head> 17 <body> 18 <p id="p1">若是點擊隱藏按鈕,我就會消失</p> 19 <button id="#hide" type="button">隱藏</button> 20 <button id="#show" type="button">顯示</button> 21 </body> 22 </html>
例二:
隱藏顯示中的稍微加深讓隱藏時帶有時間代碼以下:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <script src="/jquery/jquery-1.11.1.min.js"></script> 5 <script type="text/javascript"> 6 $(document).ready(function(){ 7 $("button").click(function(){ 8 $("p").hide(1000); 9 }); 10 }); 11 </script> 12 </head> 13 <body> 14 <button type="button">隱藏</button> 15 <p>這是一個段落。</p> 16 <p>這是另外一個段落。</p> 17 </body> 18 </html>
經過 jQuery,您能夠實現元素的淡入淡出效果。
經過 jQuery,您能夠實現元素的淡入淡出效果。
jQuery 擁有下面四種 fade 方法:
jQuery fadeIn() 用於淡入已隱藏的元素。
$(selector).fadeIn(speed,callback);
可選的 speed 參數規定效果的時長。它能夠取如下值:"slow"、"fast" 或毫秒。
可選的 callback 參數是 fading 完成後所執行的函數名稱。
下面的例子演示了帶有不一樣參數的 fadeIn() 方法:
舉例代碼以下:
<!DOCTYPE html> <html> <head> <script src="/jquery/jquery-1.11.1.min.js" ></script> <script type="test/javascripr"> $(docment).ready(function(){ $("button").click(function(){ $("div1").fadein(); $("div2").fadein(slow); $("div3").fadein(3000); }); }); </script> </head> <body> <p>演示三種不一樣參數的fadein函數</p> <br><br> <div id="div1"
style="width:80px;height:80px;display:none;background-
color:red;"></div> <br> <div id="div2" style="width:80px;height:80px;display:none;background- color:green;"></div><br> <div id="div3" style="width:80px;height:80px;display:none;background- color:blue;"></div><br> </body> </html>
jQuery fadeOut() 方法用於淡出可見元素。
$(selector).fadeOut(speed,callback);
可選的 speed 參數規定效果的時長。它能夠取如下值:"slow"、"fast" 或毫秒。
可選的 callback 參數是 fading 完成後所執行的函數名稱。
下面的例子演示了帶有不一樣參數的 fadeOut() 方法:
代碼以下:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <script src="/jquery/jquery-1.11.1.min.js"></script> 5 <script type="text/javascript"> 6 $(document).ready(function(){ 7 $("button").click(function(){ 8 $("#div1").fadeOut(); 9 $("#div2").fadeOut("slow"); 10 $("#div3").fadeOut(3000); 11 }); 12 }); 13 </script> 14 </head> 15 16 <body> 17 <p>演示帶有不一樣參數的 fadeOut() 方法。</p> 18 <button>點擊這裏,使三個矩形淡出</button> 19 <br><br> 20 <div id="div1" style="width:80px;height:80px;background-color:red;"></div> 21 <br> 22 <div id="div2" style="width:80px;height:80px;background-color:green;"></div> 23 <br> 24 <div id="div3" style="width:80px;height:80px;background-color:blue;"></div> 25 </body> 26 27 </html>
jQuery fadeToggle() 方法能夠在 fadeIn() 與 fadeOut() 方法之間進行切換。
若是元素已淡出,則 fadeToggle() 會向元素添加淡入效果。
若是元素已淡入,則 fadeToggle() 會向元素添加淡出效果。
$(selector).fadeToggle(speed,callback);
可選的 speed 參數規定效果的時長。它能夠取如下值:"slow"、"fast" 或毫秒。
可選的 callback 參數是 fading 完成後所執行的函數名稱。
下面的例子演示了帶有不一樣參數的 fadeToggle() 方法:
代碼以下:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <script src="/jquery/jquery-1.11.1.min.js"></script> 5 <script> 6 $(document).ready(function(){ 7 $("button").click(function(){ 8 $("#div1").fadeToggle(); 9 $("#div2").fadeToggle("slow"); 10 $("#div3").fadeToggle(3000); 11 }); 12 }); 13 </script> 14 </head> 15 16 <body> 17 18 <p>演示帶有不一樣參數的 fadeToggle() 方法。</p> 19 <button>點擊這裏,使三個矩形淡入淡出</button> 20 <br><br> 21 <div id="div1" style="width:80px;height:80px;background-color:red;"></div> 22 <br> 23 <div id="div2" style="width:80px;height:80px;background-color:green;"></div> 24 <br> 25 <div id="div3" style="width:80px;height:80px;background-color:blue;"></div> 26 </body> 27 28 </body> 29 </html>
jQuery fadeTo() 方法容許漸變爲給定的不透明度(值介於 0 與 1 之間)。
$(selector).fadeTo(speed,opacity,callback);
必需的 speed 參數規定效果的時長。它能夠取如下值:"slow"、"fast" 或毫秒。
fadeTo() 方法中必需的 opacity 參數將淡入淡出效果設置爲給定的不透明度(值介於 0 與 1 之間)。
可選的 callback 參數是該函數完成後所執行的函數名稱。
下面的例子演示了帶有不一樣參數的 fadeTo() 方法:
代碼以下:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <script src="/jquery/jquery-1.11.1.min.js"></script> 5 <script> 6 $(document).ready(function(){ 7 $("button").click(function(){ 8 $("#div1").fadeToggle(); 9 $("#div2").fadeToggle("slow"); 10 $("#div3").fadeToggle(3000); 11 }); 12 }); 13 </script> 14 </head> 15 16 <body> 17 18 <p>演示帶有不一樣參數的 fadeToggle() 方法。</p> 19 <button>點擊這裏,使三個矩形淡入淡出</button> 20 <br><br> 21 <div id="div1" style="width:80px;height:80px;background-color:red;"></div> 22 <br> 23 <div id="div2" style="width:80px;height:80px;background-color:green;"></div> 24 <br> 25 <div id="div3" style="width:80px;height:80px;background-color:blue;"></div> 26 </body> 27 28 </body> 29 </html>
jQuery 滑動方法可以使元素上下滑動。
經過 jQuery,您能夠在元素上建立滑動效果。
jQuery 擁有如下滑動方法:
jQuery slideDown() 方法用於向下滑動元素。
$(selector).slideDown(speed,callback);
可選的 speed 參數規定效果的時長。它能夠取如下值:"slow"、"fast" 或毫秒。
可選的 callback 參數是滑動完成後所執行的函數名稱。
下面的例子演示了 slideDown() 方法:
代碼以下:
<!DOCTYPE html> <html> <head> <script src="/jquery/jquery-1.11.1.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $(".flip").click(function(){ $(".panel").slideDown("slow"); }); }); </script> <style type="text/css"> div.panel,p.flip { margin:0px; padding:5px; text-align:center; background:#e5eecc; border:solid 1px #c3c3c3; } div.panel { height:120px; display:none; } </style> </head> <body> <div class="panel"> <p>W3School - 領先的 Web 技術教程站點</p> <p>在 W3School,你能夠找到你所須要的全部網站建設教程。</p> </div> <p class="flip">請點擊這裏</p> </body> </html>
jQuery slideUp() 方法用於向上滑動元素。
$(selector).slideUp(speed,callback);
可選的 speed 參數規定效果的時長。它能夠取如下值:"slow"、"fast" 或毫秒。
可選的 callback 參數是滑動完成後所執行的函數名稱。
下面的例子演示了 slideUp() 方法:
jQuery slideToggle() 方法能夠在 slideDown() 與 slideUp() 方法之間進行切換。
若是元素向下滑動,則 slideToggle() 可向上滑動它們。
若是元素向上滑動,則 slideToggle() 可向下滑動它們。
$(selector).slideToggle(speed,callback);
可選的 speed 參數規定效果的時長。它能夠取如下值:"slow"、"fast" 或毫秒。
可選的 callback 參數是滑動完成後所執行的函數名稱。
下面的例子演示了 slideToggle() 方法:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <script src="jquery/jquery-1.11.1.min.js"></script> 5 <script type="text/javascript"> 6 $(docment).ready(function(){ 7 $(".flip").click(function(){ 8 $(".penal").slideToggle("slow"); 9 }); 10 }); 11 </script> 12 </head> 13 <style type="text/css"> 14 div.panel,p.flip 15 { 16 margin:0px; 17 padding:5px; 18 text-align:center; 19 background:#e5eecc; 20 border:solid 1px #c3c3c3; 21 } 22 div.panel 23 { 24 height:120px; 25 display:none; 26 } 27 </style> 28 </head> 29 30 <body> 31 32 <div class="panel"> 33 <p>W3School - 領先的 Web 技術教程站點</p> 34 <p>在 W3School,你能夠找到你所須要的全部網站建設教程。</p> 35 </div> 36 <p class="flip">請點擊這裏</p> 37 </html>
jQuery animate() 方法容許您建立自定義的動畫。
jQuery animate() 方法用於建立自定義動畫。
$(selector).animate({params},speed,callback);
必需的 params 參數定義造成動畫的 CSS 屬性。
可選的 speed 參數規定效果的時長。它能夠取如下值:"slow"、"fast" 或毫秒。
可選的 callback 參數是動畫完成後所執行的函數名稱。
下面的例子演示 animate() 方法的簡單應用;它把 <div> 元素移動到左邊,直到 left 屬性等於 250 像素爲止:
提示:默認地,全部 HTML 元素都有一個靜態位置,且沒法移動。
如需對位置進行操做,要記得首先把元素的 CSS position 屬性設置爲 relative、fixed 或 absolute!
請注意,生成動畫的過程當中可同時使用多個屬性:
提示:能夠用 animate() 方法來操做全部 CSS 屬性嗎?
是的,幾乎能夠!不過,須要記住一件重要的事情:當使用 animate() 時,必須使用 Camel 標記法書寫全部的屬性名,好比,必須使用 paddingLeft 而不是 padding-left,使用 marginRight 而不是 margin-right,等等。
同時,色彩動畫並不包含在覈心 jQuery 庫中。
若是須要生成顏色動畫,您須要從 jQuery.com 下載 Color Animations 插件。
案例代碼以下:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <script src="/jquery/jquery-1.11.1.min.js"> 5 </script> 6 <script> 7 $(document).ready(function(){ 8 $("button").click(function(){ 9 $("div").animate({ 10 left:'250px', 11 opacity:'0.5', 12 height:'150px', 13 width:'150px' 14 }); 15 }); 16 }); 17 </script> 18 </head> 19 20 <body> 21 22 <button>開始動畫</button> 23 <p>默認狀況下,全部 HTML 元素的位置都是靜態的,而且沒法移動。如需對位置進行操做,記得首先把元素的 CSS position 屬性設置爲 relative、fixed 或 absolute。</p> 24 <div style="background:#98bf21;height:100px;width:100px;position:absolute;"> 25 </div> 26 27 </body> 28 </html>
也能夠定義相對值(該值相對於元素的當前值)。須要在值的前面加上 += 或 -=:
您甚至能夠把屬性的動畫值設置爲 "show"、"hide" 或 "toggle":
默認地,jQuery 提供針對動畫的隊列功能。
這意味着若是您在彼此以後編寫多個 animate() 調用,jQuery 會建立包含這些方法調用的「內部」隊列。而後逐一運行這些 animate 調用。
使用隊列功能的代碼以下:
<!DOCTYPE html> <html> <head> <script src="jquery/jquery-1.11.1.min.js"></script> <script type="text/javascript"></script> $(docment).ready(function(){ $("button").click(function(){ var div=$("div"); div.animate({left:'250px'},"slow"); div.animate({fontSize:'3em'},"slow"); }); }); </head> <body> <button>開始動畫</button> <p>默認狀況下,全部 HTML 元素的位置都是靜態的,而且沒法移動。如需對位置進行操做,記得首先把元素的 CSS position 屬性設置爲 relative、fixed 或 absolute。<p/> <div style="background:red;width:100px; height:100px;position:absolute"></div> </body> </html>
jQuery stop() 方法用於中止動畫或效果,在它們完成以前。
stop() 方法適用於全部 jQuery 效果函數,包括滑動、淡入淡出和自定義動畫。
$(selector).stop(stopAll,goToEnd);
可選的 stopAll 參數規定是否應該清除動畫隊列。默認是 false,即僅中止活動的動畫,容許任何排入隊列的動畫向後執行。
可選的 goToEnd 參數規定是否當即完成當前動畫。默認是 false。
所以,默認地,stop() 會清除在被選元素上指定的當前動畫。
代碼案例以下:
1 <DOCTYPE html> 2 <html> 3 <head> 4 <script src="jquery/jquery-1.11.1.min.js"></script> 5 <script> 6 $(docment).ready(function(){ 7 $("#start").click(function(){ 8 $("div").animate ({left:'250px'},5000); 9 $("div").animate({fontSize:'3em'},5000); 10 }); 11 $("#stop").click(function(){ 12 $("div").stop(); 13 }); 14 $("#stop2").click(function(){ 15 $("div").stop(true); 16 }); 17 $("#stop3").click(funcution(){ 18 $("div").stop(true,true); 19 }); 20 }); 21 </script> 22 </head> 23 <body> 24 <button id="start" type=button>開始</button> 25 <button id="stop" type=button>中止</button> 26 <button id="stop2" type=button>中止全部</button> 27 <button id="stop3" type=button>中止但要完成</button> 28 <p>"開始" 按鈕會啓動動畫。<p/> 29 <p>"中止" 按鈕會中止當前活動的動畫,但容許已排隊的動畫向前執行。<p/> 30 <p>"中止全部" 按鈕中止當前活動的動畫,並清空動畫隊列;所以元素上的全部動畫都會中止。<p/> 31 <p>"中止但要完成" 會當即完成當前活動的動畫,而後停下來。<p/> 32 <div style="background:red;width:150px; 33 height:150px;position:absolute">HELLO</div> 34 </body> 35 36 </html>
Callback 函數在當前動畫 100% 完成以後執行。
許多 jQuery 函數涉及動畫。這些函數也許會將 speed 或 duration 做爲可選參數。
例子:$("p").hide("slow")
speed 或 duration 參數能夠設置許多不一樣的值,好比 "slow", "fast", "normal" 或毫秒。
因爲 JavaScript 語句(指令)是逐一執行的 - 按照次序,動畫以後的語句可能會產生錯誤或頁面衝突,由於動畫尚未完成。
爲了不這個狀況,您能夠以參數的形式添加 Callback 函數。
當動畫 100% 完成後,即調用 Callback 函數。
$(selector).hide(speed,callback)
callback 參數是一個在 hide 操做完成後被執行的函數。
結論:若是您但願在一個涉及動畫的函數以後來執行語句,請使用 callback 函數。
示例代碼以下:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <script src="jquery/jquery.1.11.1.min.js"></script> 5 <script type="text/javascript"> 6 $(docment).ready(function(){ 7 $("button").click(function(){ 8 $("p").hide(1000,function(){ 9 alert("這條信息已經隱藏"); 10 }); 11 }); 12 }): 13 </script> 14 </head> 15 <body> 16 <button type=button>Hide</button> 17 <p>這是一個段落!!</p> 18 </body> 19 </html>
經過 jQuery,您能夠把動做/方法連接起來。
Chaining 容許咱們在一條語句中容許多個 jQuery 方法(在相同的元素上)。
直到如今,咱們都是一次寫一條 jQuery 語句(一條接着另外一條)。
不過,有一種名爲連接(chaining)的技術,容許咱們在相同的元素上運行多條 jQuery 命令,一條接着另外一條。
提示:這樣的話,瀏覽器就沒必要屢次查找相同的元素。
如需連接一個動做,您只需簡單地把該動做追加到以前的動做上。
示例代碼以下:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <script src="jquery/jquery-1.11.1.min.js"></script> 5 <script type="text/javascript"> 6 $(docment).ready(function(){ 7 $("button").click(function(){ 8 $("p1").css("color","red").sildup(2000).sildDown(2000); 9 }); 10 }); 11 </script> 12 </head> 13 <body> 14 <p id="p1">jQuery 樂趣十足!</p> 15 <button>點擊這裏</button> 16 </body> 17 </html>
css() 方法設置或返回被選元素的一個或多個樣式屬性。
如需返回指定的 CSS 屬性的值,請使用以下語法:
css("propertyname");
下面的例子將返回首個匹配元素的 background-color 值:
$("p").css("background-color");
如需設置指定的 CSS 屬性,請使用以下語法:
css("propertyname","value");
下面的例子將爲全部匹配元素設置 background-color 值:
$("p").css("background-color","yellow");
如需設置多個 CSS 屬性,請使用以下語法:
css({"propertyname":"value","propertyname":"value",...});
下面的例子將爲全部匹配元素設置 background-color 和 font-size:
$("p").css({"background-color":"yellow","font-size":"200%"});
下面的例子設置指定的 <div> 元素的寬度和高度:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <script src="/jquery/jquery-1.11.1.min.js"></script> 5 <script> 6 $(document).ready(function(){ 7 $("button").click(function(){ 8 $("#div1").width(320).height(320); 9 }); 10 }); 11 </script> 12 </head> 13 <body> 14 15 <div id="div1" style="height:100px;width:300px;padding:10px;margin:3px;border:1px solid blue;background-color:lightblue;"></div> 16 <br> 17 <button>調整 div 的尺寸</button> 18 19 </body> 20 </html>
jQuery 遍歷,意爲「移動」,用於根據其相對於其餘元素的關係來「查找」(或選取)HTML 元素。以某項選擇開始,並沿着這個選擇移動,直到抵達您指望的元素爲止。
下圖展現了一個家族樹。經過 jQuery 遍歷,您可以從被選(當前的)元素開始,輕鬆地在家族樹中向上移動(祖先),向下移動(子孫),水平移動(同胞)。這種移動被稱爲對 DOM 進行遍歷。
提示:祖先是父、祖父、曾祖父等等。後代是子、孫、曾孫等等。同胞擁有相同的父。
jQuery 提供了多種遍歷 DOM 的方法。
遍歷方法中最大的種類是樹遍歷(tree-traversal)。
下一章會講解如何在 DOM 樹中向上、下以及同級移動。
如需瞭解全部的 jQuery 遍歷方法,請訪問咱們的:http://www.w3school.com.cn/jquery/jquery_ref_traversing.asp
三個最基本的過濾方法是:first(), last() 和 eq(),它們容許您基於其在一組元素中的位置來選擇一個特定的元素。
其餘過濾方法,好比 filter() 和 not() 容許您選取匹配或不匹配某項指定標準的元素。
first() 方法返回被選元素的首個元素。
下面的例子選取首個 <div> 元素內部的第一個 <p> 元素:
$(document).ready(function(){ $("div p").first(); });
last() 方法返回被選元素的最後一個元素。
下面的例子選擇最後一個 <div> 元素中的最後一個 <p> 元素:
$(document).ready(function(){ $("div p").last(); });
eq() 方法返回被選元素中帶有指定索引號的元素。
索引號從 0 開始,所以首個元素的索引號是 0 而不是 1。下面的例子選取第二個 <p> 元素(索引號 1):
$(document).ready(function(){ $("p").eq(1); });
filter() 方法容許您規定一個標準。不匹配這個標準的元素會被從集合中刪除,匹配的元素會被返回。
下面的例子返回帶有類名 "intro" 的全部 <p> 元素:
$(document).ready(function(){ $("p").filter(".intro"); });
not() 方法返回不匹配標準的全部元素。
提示:not() 方法與 filter() 相反。
下面的例子返回不帶有類名 "intro" 的全部 <p> 元素:
$(document).ready(function(){ $("p").not(".intro"); });
jQuery 提供多個與 AJAX 有關的方法。
經過 jQuery AJAX 方法,您可以使用 HTTP Get 和 HTTP Post 從遠程服務器上請求文本、HTML、XML 或 JSON - 同時您可以把這些外部數據直接載入網頁的被選元素中。
提示:若是沒有 jQuery,AJAX 編程仍是有些難度的。
編寫常規的 AJAX 代碼並不容易,由於不一樣的瀏覽器對 AJAX 的實現並不相同。這意味着您必須編寫額外的代碼對瀏覽器進行測試。不過,jQuery 團隊爲咱們解決了這個難題,咱們只須要一行簡單的代碼,就能夠實現 AJAX 功能。
一個簡單的Ajax案例代碼以下:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <script src="/jquery/jquery-1.11.1.min.js"> 5 </script> 6 <script> 7 $(document).ready(function(){ 8 $("#btn1").click(function(){ 9 $('#test').load('/example/jquery/demo_test.txt'); 10 }) 11 }) 12 </script> 13 </head> 14 15 <body> 16 17 <h3 id="test">請點擊下面的按鈕,經過 jQuery AJAX 改變這段文本。</h3> 18 <button id="btn1" type="button">得到外部的內容</button> 19 20 </body> 21 </html>
jQuery load() 方法是簡單但強大的 AJAX 方法。
load() 方法從服務器加載數據,並把返回的數據放入被選元素中。
$(selector).load(URL,data,callback);
必需的 URL 參數規定您但願加載的 URL。
也能夠把 jQuery 選擇器添加到 URL 參數。
下面的例子把 "demo_test.txt" 文件中 id="p1" 的元素的內容,加載到指定的 <div> 元素中:
可選的 data 參數規定與請求一同發送的查詢字符串鍵/值對集合。
可選的 callback 參數是 load() 方法完成後所執行的函數名稱。
可選的 callback 參數規定當 load() 方法完成後所要容許的回調函數。回調函數能夠設置不一樣的參數:
callback函數中的不一樣參數的含義:
下面的例子會在 load() 方法完成後顯示一個提示框。若是 load() 方法已成功,則顯示「外部內容加載成功!」,而若是失敗,則顯示錯誤消息:
jQuery get() 和 post() 方法用於經過 HTTP GET 或 POST 請求從服務器請求數據。
兩種在客戶端和服務器端進行請求-響應的經常使用方法是:GET 和 POST。
GET 基本上用於從服務器得到(取回)數據。註釋:GET 方法可能返回緩存數據。
POST 也可用於從服務器獲取數據。不過,POST 方法不會緩存數據,而且經常使用於連同請求一塊兒發送數據。
如需學習更多有關 GET 和 POST 以及兩方法差別的知識,請閱讀咱們的 HTTP 方法 - GET 對比 POST。
$.get() 方法經過 HTTP GET 請求從服務器上請求數據。
$.get(URL,callback);
必需的 URL 參數規定您但願請求的 URL。
可選的 callback 參數是請求成功後所執行的函數名。
下面的例子使用 $.get() 方法從服務器上的一個文件中取回數據:
$("button").click(function(){ $.get("demo_test.asp",function(data,status){ alert("Data: " + data + "\nStatus: " + status); }); });
$.get() 的第一個參數是咱們但願請求的 URL("demo_test.asp")。
第二個參數是回調函數。第一個回調參數存有被請求頁面的內容,第二個回調參數存有請求的狀態。
提示:這個 ASP 文件 ("demo_test.asp") 相似這樣:
<% response.write("This is some text from an external ASP file.") %>
$.post() 方法經過 HTTP POST 請求從服務器上請求數據。
$.post(URL,data,callback);
必需的 URL 參數規定您但願請求的 URL。
可選的 data 參數規定連同請求發送的數據。
可選的 callback 參數是請求成功後所執行的函數名。
下面的例子使用 $.post() 連同請求一塊兒發送數據:
$.post() 的第一個參數是咱們但願請求的 URL ("demo_test_post.asp")。
而後咱們連同請求(name 和 city)一塊兒發送數據。
"demo_test_post.asp" 中的 ASP 腳本讀取這些參數,對它們進行處理,而後返回結果。
第三個參數是回調函數。第一個回調參數存有被請求頁面的內容,而第二個參數存有請求的狀態。
提示:這個 ASP 文件 ("demo_test_post.asp") 相似這樣:
<% dim fname,city fname=Request.Form("name") city=Request.Form("city") Response.Write("Dear " & fname & ". ") Response.Write("Hope you live well in " & city & ".") %>
如何在頁面上同時使用 jQuery 和其餘框架?
正如您已經瞭解到的,jQuery 使用 $ 符號做爲 jQuery 的簡寫。
若是其餘 JavaScript 框架也使用 $ 符號做爲簡寫怎麼辦?
其餘一些 JavaScript 框架包括:MooTools、Backbone、Sammy、Cappuccino、Knockout、JavaScript MVC、Google Web Toolkit、Google Closure、Ember、Batman 以及 Ext JS。
其中某些框架也使用 $ 符號做爲簡寫(就像 jQuery),若是您在用的兩種不一樣的框架正在使用相同的簡寫符號,有可能致使腳本中止運行。
jQuery 的團隊考慮到了這個問題,並實現了 noConflict() 方法。
noConflict() 方法會釋放會 $ 標識符的控制,這樣其餘腳本就可使用它了。
如何在頁面上同時使用 jQuery 和其餘框架?
正如您已經瞭解到的,jQuery 使用 $ 符號做爲 jQuery 的簡寫。
若是其餘 JavaScript 框架也使用 $ 符號做爲簡寫怎麼辦?
其餘一些 JavaScript 框架包括:MooTools、Backbone、Sammy、Cappuccino、Knockout、JavaScript MVC、Google Web Toolkit、Google Closure、Ember、Batman 以及 Ext JS。
其中某些框架也使用 $ 符號做爲簡寫(就像 jQuery),若是您在用的兩種不一樣的框架正在使用相同的簡寫符號,有可能致使腳本中止運行。
jQuery 的團隊考慮到了這個問題,並實現了 noConflict() 方法。
noConflict() 方法會釋放會 $ 標識符的控制,這樣其餘腳本就可使用它了。