jQuery 基礎效果①

來源:互聯網
上載者:User

jQuery選取器


jQuery 元素選取器
jQuery 使用 CSS 選取器來選取 HTML 元素。

$("p") 選取 <p> 元素。

$("p.intro") 選取所有 class="intro" 的 <p> 元素。

$("p#demo") 選取所有 id="demo" 的 <p> 元素。
jQuery 屬性選取器
jQuery 使用 XPath 運算式來選擇帶有給定屬性的元素。

$("[href]") 選取所有帶有 href 屬性的元素。

$("[href='#']") 選取所有帶有 href 值等於 "#" 的元素。

$("[href!='#']") 選取所有帶有 href 值不等於 "#" 的元素。

$("[href$='.jpg']") 選取所有 href 值以 ".jpg" 結尾的元素。
jQuery CSS 選取器
jQuery CSS 選取器可用於改變 HTML 元素的 CSS 屬性。

下面的例子把所有 p 元素的背景顏色更改為紅色:

 

 

由於 jQuery 是為處理 HTML 事件而特別設計的,那麼當您遵循以下原則時,您的代碼會更恰當且更易維護:

把所有 jQuery 代碼置於事件處理函數中
把所有事件處理函數置於文檔就緒事件處理器中
把 jQuery 代碼置於單獨的 .js 檔案中
如果存在名稱衝突,則重新命名 jQuery 庫
Event 函數 綁定函數至
$(document).ready(function) 將函數綁定到文檔的就緒事件(當文檔完成載入時)
$(selector).click(function) 觸發或將函數綁定到被選元素的點擊事件
$(selector).dblclick(function) 觸發或將函數綁定到被選元素的雙擊事件
$(selector).focus(function) 觸發或將函數綁定到被選元素的獲得焦時間點事件
$(selector).mouseover(function) 觸發或將函數綁定到被選元素的滑鼠移至上方事件

 


jQuery 名稱衝突
jQuery 使用 $ 符號作為 jQuery 的簡介方式。

某些其他 JavaScript 庫中的函數(比如 Prototype)同樣使用 $ 符號。

jQuery 使用名為 noConflict() 的方法來解決該問題。

var jq=jQuery.noConflict(),協助您使用自己的名稱(比如 jq)來代替 $ 符號。

 


顯示隱藏
jQuery hide() 和 show()
$(selector).hide(speed,callback);$(selector).show(speed,callback);可選的 speed 參數規定隱藏/顯示的速度,可以取以下值:"slow"、"fast" 或毫秒。

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

jQuery toggle()
通過 jQuery,您可以使用 toggle() 方法來切換 hide() 和 show() 方法。

顯示被隱藏的元素,並隱藏已顯示的元素:

 

淡入淡出


jQuery fadeToggle() 方法
jQuery fadeToggle() 方法可以在 fadeIn() 與 fadeOut() 方法之間進行切換。

如果元素已淡出,則 fadeToggle() 會向元素添加淡入效果。

如果元素已淡入,則 fadeToggle() 會向元素添加淡出效果。

文法:
$(selector).fadeToggle(speed,callback);可選的 speed 參數規定效果的時間長度。它可以取以下值:"slow"、"fast" 或毫秒。

可選的 callback 參數是 fading 完成後所執行的函數名稱。

jQuery fadeTo() 方法
jQuery fadeTo() 方法允許漸層為給定的不透明度(值介於 0 與 1 之間)。

文法:
$(selector).fadeTo(speed,opacity,callback);必需的 speed 參數規定效果的時間長度。它可以取以下值:"slow"、"fast" 或毫秒。

fadeTo() 方法中必需的 opacity 參數將淡入淡出效果設定為給定的不透明度(值介於 0 與 1 之間)。

可選的 callback 參數是該函數完成後所執行的函數名稱。

 

上下滑動

 

 

jQuery slideToggle() 方法

jQuery slideToggle() 方法可以在 slideDown() 與 slideUp() 方法之間進行切換。


如果元素向下滑動,則 slideToggle() 可向上滑動它們。


如果元素向上滑動,則 slideToggle() 可向下滑動它們。

$(selector).slideToggle(speed,callback);
可選的 speed 參數規定效果的時間長度。它可以取以下值:"slow"、"fast" 或毫秒。


可選的 callback 參數是滑動完成後所執行的函數名稱。

 

 

動畫效果

 

jQuery 動畫 - animate() 方法

 

jQuery animate() 方法用於建立自訂動畫。

 


文法:

 

$(selector).animate({params},speed,callback);


必需的 params 參數定義形成動畫的 CSS 屬性。

 


可選的 speed 參數規定效果的時間長度。它可以取以下值:"slow"、"fast" 或毫秒。

 

可選的 callback 參數是動畫完成後所執行的函數名稱。


提示:預設地,所有 HTML 元素都有一個靜態位置,且無法移動。

如需對位置進行操作,要記得首先把元素的 CSS position 屬性設定為 relative、fixed 或 absolute!


提示:可以用 animate() 方法來操作所有 CSS 屬性嗎?

是的,幾乎可以!不過,需要記住一件重要的事情:當使用 animate() 時,必須使用 Camel 標記法書寫所有的屬性名稱,比如,必須使用 paddingLeft 而不是 padding-left,使用 marginRight 而不是 margin-right,等等。

同時,色彩動畫並不包含在核心 jQuery 庫中。

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

也可以定義相對值(該值相對於元素的當前值)。需要在值的前面加上 += 或 -=:


預設地,jQuery 提供針對動畫的隊列功能。

這意味著如果您在彼此之後編寫多個 animate() 調用,jQuery 會建立包含這些方法調用的“內部”隊列。然後逐一運行這些 animate 調用。


執行個體 1
隱藏,如果您希望在彼此之後執行不同的動畫,那麼我們要利用隊列功能:

$("button").click(function(){
  var div=$("div");
  div.animate({height:'300px',opacity:'0.4'},"slow");
  div.animate({width:'300px',opacity:'0.8'},"slow");
  div.animate({height:'100px',opacity:'0.4'},"slow");
  div.animate({width:'100px',opacity:'0.8'},"slow");
});
親自試一試

執行個體 2
下面的例子把 <div> 元素移動到右邊,然後增加文本的字型大小:

$("button").click(function(){
  var div=$("div");
  div.animate({left:'100px'},"slow");
  div.animate({fontSize:'3em'},"slow");
});
親自試一試

 

 

 

 

停止動畫
jQuery stop() 方法
jQuery stop() 方法用於停止動畫或效果,在它們完成之前。

stop() 方法適用於所有 jQuery 效果函數,包括滑動、淡入淡出和自訂動畫。

文法
$(selector).stop(stopAll,goToEnd);可選的 stopAll 參數規定是否應該清除動畫隊列。預設是 false,即僅停止活動的動畫,允許任何排入隊列的動畫向後執行。

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

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

 

 

 

jQuery Callback 函數
當動畫 100% 完成後,即調用 Callback 函數。

典型的文法:
$(selector).hide(speed,callback)callback 參數是一個在 hide 操作完成後被執行的函數。

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

提示:這樣的話,瀏覽器就不必多次尋找相同的元素。

如需連結一個動作,您只需簡單地把該動作追加到之前的動作上。


下面的例子把 css(), slideUp(), and slideDown() 連結在一起。"p1" 元素首先會變為紅色,然後向上滑動,然後向下滑動:


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

 


 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.