jQuery animate easing使用方法

来源:http://www.cnblogs.com/wcf52web/archive/2016/06/17/5593069.html
-Advertisement-
Play Games

從jQuery API 文檔中可以知道,jQuery自定義動畫的函數.animate( properties [, duration] [, easing] [, complete] )有四個參數: properties:一組包含作為動畫屬性和終值的樣式屬性和及其值的集合 duration(可選): ...


jQuery API 文檔中可以知道,jQuery自定義動畫的函數.animate( properties [, duration] [, easing] [, complete] )有四個參數:

 

  • properties:一組包含作為動畫屬性和終值的樣式屬性和及其值的集合
  • duration(可選):動畫執行時間,其值可以是三種預定速度之一的字元串("slow", "normal", or "fast")或表示動畫時長的毫秒數值(如:1000)
  • easing(可選):要使用的過渡效果的名稱,如:"linear" 或"swing"
  • complete(可選):在動畫完成時執行的函數
其中參數easing預設有兩個效果:"linear"和"swing",如果需要更多效果就要插件支持了,jQuery Easing Plugin提供了像"easeOutExpo"、"easeOutBounce"等30多種效果,大家可以點擊這裡去看每一種easing的演示效果,下麵詳細介紹下其使用方法及每種easing的曲線圖。

jQuery easing 使用方法

首先,項目中如果需要使用特殊的動畫效果,則需要在引入jQuery之後引入jquery.easing.1.3.js
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script type="text/javascript" src="http://gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js"></script> 

引入之後,easing參數可選的值就有以下32種:

 

  1. linear
  2. swing
  3. easeInQuad
  4. easeOutQuad
  5. easeInOutQuad
  6. easeInCubic
  7. easeOutCubic
  8. easeInOutCubic
  9. easeInQuart
  10. easeOutQuart
  11. easeInOutQuart
  12. easeInQuint
  13. easeOutQuint
  14. easeInOutQuint
  15. easeInExpo
  16. easeOutExpo
  17. easeInOutExpo
  18. easeInSine
  19. easeOutSine
  20. easeInOutSine
  21. easeInCirc
  22. easeOutCirc
  23. easeInOutCirc
  24. easeInElastic
  25. easeOutElastic
  26. easeInOutElastic
  27. easeInBack
  28. easeOutBack
  29. easeInOutBack
  30. easeInBounce
  31. easeOutBounce
  32. easeInOutBounce
當 然一般一個項目中不可能會用到這麼多效果,為了減少代碼冗餘,必要時可以不用引入整個jquery.easing.1.3.js,我們可以只把我們需要的 幾種easing放入Javascript文件中,如項目中只用到"easeOutExpo"和"easeOutBounce"兩種效果,只需要下麵的代 碼就可以了
 jQuery.extend( jQuery.easing,  
{  
    easeOutExpo: function (x, t, b, c, d) {  
        return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;  
    },  
    easeOutBounce: function (x, t, b, c, d) {  
        if ((t/=d) < (1/2.75)) {  
            return c*(7.5625*t*t) + b;  
        } else if (t < (2/2.75)) {  
            return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;  
        } else if (t < (2.5/2.75)) {  
            return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;  
        } else {  
            return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;  
        }  
    },  
});  

使用jQuery自定義動畫函數animate來指定easing效果,如自定義一種類彈簧效果的動畫:

 

 $(myElement).animate({  
    top: 500,  
    opacity: 1  
}, 1000, 'easeOutBounce');

 

值得一提的是jQuery 1.4版本中對animate()方法,easing的方法進行了擴展,支持為每個屬性指定easing方法,詳細請參考這裡,如:

//第一種寫法
 $(myElement).animate({  
    left: [500, 'swing'],  
    top: [200, 'easeOutBounce']  
});  
//第二種寫法
 $(myElement).animate({  
    left: 500,  
    top: 200  
}, {  
    specialEasing: {  
        left: 'swing',  
        top: 'easeOutBounce'  
    }  
});  

使用jQuery內置動畫函數如slideUp()、slideDown()等來指定easing效果,以下兩種方法都可以:

 

 $(myElement).slideUp(1000, method, callback});  
$(myElement).slideUp({  
    duration: 1000,   
    easing: method,   
    complete: callback  
});  

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 塊級元素:div, p(段落), form(表單), ul(無序列表), li(列表項), ol(有序列表), dl(定義列表), hr(水平分割線), menu(菜單列表), table(表格)... 特點:1、塊級元素會獨占一行,其寬度自動填滿其父元素寬度。 2、可以設置width,height ...
  • 其實使用 Angular.js 做項目已經很久了,也遇到過許多問題。其中很多問題的出現都是因為沒有按照規範或者最佳實踐來做,大部分原因是學的不夠細,很多 tips 沒 get 到,用到項目中就會出現各種問題,我遇到的問題最多的就是 directive 這塊。很多的 bug都是指令的嵌套引發的。當時自 ...
  • 如何實現刷新當前頁面呢?藉助js你將無所不能。 1,reload 方法,該方法強迫瀏覽器刷新當前頁面。語法:location.reload([bForceGet]) 參數: bForceGet, 可選參數, 預設為 false,從客戶端緩存里取當前頁。true, 則以 GET 方式,從服務端取最新的 ...
  • var rockModule = (function () { //監聽手機搖動事件 if (window.DeviceMotionEvent) { window.addEventListener('devicemotion', deviceMotionHandler, false); } else ...
  • 1、去github官網註冊個人帳號:沒有的:猛戳這裡去註冊,比如我的賬戶名:wjf444128852,我的已經漢化(可在github里搜索github如何漢化有插件) 2、點擊倉庫-新建,倉庫名字必須是:你的github帳號.github.com或者.io 3、在該倉庫下創建index.html(可 ...
  • 說在前面: 嗯...博主現在是大一,前段時間犯腦癌想開一個技術博,記錄一下學習過程,也是這麼做的。 為什麼要學前端呢?無非就是為了走在發家致富,迎娶白富美的康莊大道上。那幾周來對前端開發已經入門了,(鼓掌,鼓掌)非常有意思。但還是感覺道阻且長。不懂的東西越來越多......不過還好,有好多人幫我呀, ...
  • 先來個相容性說明,洗洗腦: div{transform:rotate(7deg);-ms-transform:rotate(7deg); /* IE 9 */-moz-transform:rotate(7deg); /* Firefox */-webkit-transform:rotate(7deg ...
  • 遞歸函數: function factorical(num){ if(num<=1){ return 1; } else{ return num*factorical(num-1); } } factorial(2)//2 這個遞歸函數就是用函數來調用函數本身,但是這樣真的好嗎,好 接下來看這裡 v ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...