jQuery內建的幾種動畫樣式
用JavaScript實作動畫,原理非常簡單:我們只需要以固定的時間間隔(例如,0.1秒),每次把DOM元素的CSS樣式修改一點(例如,高寬各增加10%),看起來就像動畫了。
但要用JavaScript手動實作動畫效果,就需要寫非常複雜的程式碼。如果想要把動畫效果用函數封裝起來便於復用,那考慮的事情就更多了。本文主要和大家分享jQuery內建的幾種動畫樣式。
使用jQuery實作動畫,程式碼已經簡單得不能再簡化了:只需要一行程式碼!
讓我們先來看看jQuery內建的幾種動畫樣式:
show / hide
#直接以無參數形式呼叫show()和hide( ),會顯示和隱藏DOM元素。但是,只要傳遞一個時間參數進去,就變成了動畫:
var p = $('#test-show-hide'); p.hide(3000); // 在3秒钟内逐渐消失
時間以毫秒為單位,但也可以是'slow','fast'這些字串:
var p = $('#test-show-hide'); p.show('slow'); // 在0.6秒钟内逐渐显示
toggle()方法則依照目前狀態決定是show()還是hide()。
slideUp / slideDown
你可能已經看出來了,show()和hide()是從左上角逐漸展開或收縮的,而slideUp()和slideDown()則是在垂直方向逐漸展開或縮小的。
slideUp()把一個可見的DOM元素收起來,效果跟拉上窗簾似的,slideDown()相反,而slideToggle()則根據元素是否可見來決定下一步動作:
var p = $('#test-slide'); p.slideUp(3000); // 在3秒钟内逐渐向上消失
fadeIn / fadeOut
fadeIn()和fadeOut()的動畫效果是淡入淡出,也就是透過不斷設定DOM元素的opacity屬性來實現,而fadeToggle()則根據元素是否可見來決定下一步動作:
var p = $('#test-fade'); p.fadeOut('slow'); // 在0.6秒内淡出
自訂動畫
如果上述動畫效果還不能滿足你的要求,那就祭獻最後大招:animate(),它可以實現任意動畫效果,我們需要傳入的參數就是DOM元素最終的CSS狀態和時間,jQuery在時間段內不斷調整CSS直到達到我們設定的值:
var p = $('#test-animate'); p.animate({ opacity: 0.25, width: '256px', height: '256px' }, 3000); // 在3秒钟内CSS过渡到设定值
animate()還可以再傳入一個函數,當動畫結束時,該函數將被呼叫:
var p = $('#test-animate'); p.animate({ opacity: 0.25, width: '256px', height: '256px' }, 3000, function () { console.log('动画已结束'); // 恢复至初始状态: $(this).css('opacity', '1.0').css('width', '128px').css('height', '128px'); });
實際上這個回呼函數參數對於基本動畫也是適用的。
有了animate(),你就可以實現各種自訂動畫效果了:
animate()
序列動畫
jQuery的動畫效果還可以串列執行,透過delay()方法還可以實現暫停,這樣,我們可以實現更複雜的動畫效果,而程式碼卻相當簡單:
var p = $('#test-animates'); // 动画效果:slideDown - 暂停 - 放大 - 暂停 - 缩小 p.slideDown(2000) .delay(1000) .animate({ width: '256px', height: '256px' }, 2000) .delay(1000) .animate({ width: '128px', height: '128px' }, 2000); } </script>
因為動畫需要執行一段時間,所以jQuery必須不斷傳回新的Promise物件才能後續執行操作。簡單地把動畫封裝在函數中是不夠的。
為什麼有的動畫沒有效果
你可能會遇到,有的動畫如slideUp()根本沒有效果。這是因為jQuery動畫的原理是逐漸改變CSS的值,如height從100px逐漸變成0。但是很多不是block性質的DOM元素,對它們設定height根本不起作用,所以動畫也就沒有效果。
此外,jQuery也沒有實現對background-color的動畫效果,用animate()設定background-color也沒有效果。這種情況下可以使用CSS3的transition來實現動畫效果。
相關推薦:
#以上是jQuery內建的幾種動畫樣式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

我們在日常的辦公中常常會使用到ppt,那麼你是否對ppt裡邊的每個操作功能都很了解呢?例如:ppt中怎麼設定動畫效果、怎麼設定切換效果、每個動畫的效果長度是多少?每個投影片能不能自動播放、ppt動畫先進入再退出等等,那麼今天這期我就先跟大家分享ppt動畫先進入再退出的具體操作步驟,就在下方,小伙伴們快來看一看吧! 1.首先,我們在電腦中開啟ppt,點選文字方塊外側選取文字框,(如下圖紅色圈出部分所示)。 2.然後,點選選單列中的【動畫】,選取【擦除】的效果,(如圖紅色圈出部分所示)。 3.接下來,點擊【

jQuery中如何使用PUT請求方式?在jQuery中,發送PUT請求的方法與發送其他類型的請求類似,但需要注意一些細節和參數設定。 PUT請求通常用於更新資源,例如更新資料庫中的資料或更新伺服器上的檔案。以下是在jQuery中使用PUT請求方式的具體程式碼範例。首先,確保引入了jQuery庫文件,然後可以透過以下方式發送PUT請求:$.ajax({u

WordPress網頁錯位現象解決攻略在WordPress網站開發中,有時候我們會遇到網頁元素錯位的情況,這可能是由於不同裝置上的螢幕尺寸、瀏覽器相容性或CSS樣式設定不當所致。要解決這種錯位現象,我們需要仔細分析問題、找出可能的原因,並逐步進行除錯和修復。本文將分享一些常見的WordPress網頁錯位問題以及對應的解決攻略,同時提供具體的程式碼範例,幫助開

jQuery如何移除元素的height屬性?在前端開發中,經常會遇到需要操作元素的高度屬性的需求。有時候,我們可能需要動態改變元素的高度,而有時候又需要移除元素的高度屬性。本文將介紹如何使用jQuery來移除元素的高度屬性,並提供具體的程式碼範例。在使用jQuery操作高度屬性之前,我們首先需要了解CSS中的height屬性。 height屬性用於設定元素的高度

標題:jQuery小技巧:快速修改頁面所有a標籤的文字在網頁開發中,我們經常需要對頁面中的元素進行修改和操作。使用jQuery時,有時候需要一次修改頁面中所有a標籤的文字內容,這樣可以節省時間和精力。以下將介紹如何使用jQuery快速修改頁面所有a標籤的文本,同時給出具體的程式碼範例。首先,我們需要引入jQuery庫文件,確保在頁面中引入了以下程式碼:<

有時候我們會遇到需要在ppt中加入動畫的需求,例如如果我們想要做一張雷雨ppt,想在裡面加一些動畫雷雨效果,這該怎麼辦呢?今天,小編就來為大家介紹一下雷雨ppt中動畫雷雨該如何製作,其實很簡單,快來學起來吧! 1.首先我們打開一張PPT的頁面,“插入”——“形狀”——“基本形狀”——“閃電形”,如圖所示。 2.在右側的「填滿與線條」標籤裡面,「填滿」選擇:白色;「線條」選擇:黑色,具體如圖。 3.依序點擊“動畫”——“自訂動畫”——“添加效果”——“強調”——“細微型”——“忽明忽暗”,

標題:使用jQuery修改所有a標籤的文字內容jQuery是一款受歡迎的JavaScript庫,被廣泛用於處理DOM操作。在網頁開發中,經常會遇到需要修改頁面上連結標籤(a標籤)的文字內容的需求。本文將介紹如何使用jQuery來實現這個目標,並提供具體的程式碼範例。首先,我們需要在頁面中引入jQuery庫。在HTML檔案中加入以下程式碼:

如何判斷jQuery元素是否具有特定屬性?在使用jQuery操作DOM元素時,常會遇到需要判斷元素是否具有某個特定屬性的情況。在這種情況下,我們可以藉助jQuery提供的方法來輕鬆實現這項功能。以下將介紹兩種常用的方法來判斷一個jQuery元素是否具有特定屬性,並附上具體的程式碼範例。方法一:使用attr()方法和typeof運算子//判斷元素是否具有特定屬
