javascript動畫物件支援加速、減速、緩入、緩出的實現程式碼_javascript技巧
呼叫介面:
/
* @param elem {HTMLElement} 執行動畫的HTML元素
* @param params {JSON} 動畫執行過過程中需要修改的HTML屬性
* @param duration {Number} 可選,動畫執行時間,單位毫秒
* @param easing {String} 可選,動畫執行的方式,緩入easeIn、緩出easeOut
* @param callback {Function} 可選,動畫執行完成時的回呼函數
* @return
**/ * 🎜>effect.animate(elem, params, duration, easing, callback);
示範效果
程式碼如下:
/輔助物件,讀/寫DOM元素屬性
var attribute = {
get: function(elem, attr){
var val;
if(elem.currentStyle){
if(attr ==== = "opacity") {
val = elem.filters.alpha[attr];
}else {
val = elem.currentStyle[attr];
}
}
else {
val = getComputedStyle(elem)[attr];
if(attr === "opacity") {
val = 100 * val;
}
}
return val ;
},
set: function(elem, attr, val){
if(attr=='opacity'){
elem.style.filter = 'alpha(opacity=' (val ) ')';
elem.style.opacity = (val)/100;
}
else{
elem.style[attr] = val 'px';
}
}
};
/*
* 描述: tween動畫演算法。
* @param Number t: 動畫已經執行的時間(實際上時執行幾次/幀數)
* @param Number b: 起始位置
* @param Number c: 終止位置
* @param Number d: 從起始位置到終止位置的經過時間(實際上時執行多少次/幀數)
*/
var tween = {
//緩入
easeIn: function (t, b, c, d){
return c * (t/=d) * t b;
},
//緩出
easeOut: function (t,b ,c,d){
return -c * (t/=d) * (t-2) b;
}
};
//動畫物件
var effect = {
animate: function(elem, params, duration, easing, callback){
var dt = new Date().getTime(),
b = 0,
c = 0,
d = duration || 500,
fps = 1000/60;
var changes = [];
for(var attr in params){
b = parseFloat(attribute.get(elem, attrget(elem ));
c = params[attr] - b;
changes.push({
attr: attr,
b: b,
c: c
});
}
easing = easing || "easeOut";
callback = callback || new Function;
setTimeout(function(){
var t = new Date().getTime() - dt;
var b, c, attr;
for(var i=0; i
c = changes[ i].c;
attr = changes[i].attr;
attribute.set(elem, attr, tween[easing](t, b, c, d));
if(d attribute.set(elem, attr, params[attr]);
callback();
return;
}
}
setTimeout(arguments.callee, fps);
}, fps);

熱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)

熱門話題

Laravel快取機制:加速應用程式的回應時間引言:在今天的網路時代,快速的應用程式回應時間對於使用者體驗和業務成功至關重要。為了提高應用程式的效能和響應速度,開發人員需要採取一些策略。其中之一就是使用快取機制。 Laravel作為一個流行的PHP框架,提供了一套強大的快取機制,可以幫助我們加速應用程式的回應時間。本文將詳細介紹Laravel快取機制的使用方法

如何在FastAPI中使用快取來加速回應的速度引言:在現代Web開發中,效能是一個重要的關注點。如果我們的應用程式無法快速回應客戶請求,可能會導致用戶體驗的下降甚至用戶流失。而使用快取是提高Web應用程式效能的常見方法之一。在本文中,我們將探討如何使用快取來加速FastAPI框架的反應速度,並提供對應的程式碼範例。一、什麼是快取?快取是一種將經常被存取的

如何使用Numba加速Python程式的數值計算引言:在進行數值計算時,Python是一種非常靈活且易於使用的語言。然而,由於Python是一種解釋型語言,它的運行速度相對較慢,特別是在密集的數值計算任務中。為了提高Python程式的效能,我們可以使用一些最佳化工具和函式庫。其中一個非常強大的函式庫是Numba,它可以在不改變Python程式碼結構的情況下,使用即時編譯

很多使用win7系統電腦的夥伴,發現使用電腦的時候發現網路速度特別慢。這是什麼情況呢?可能是你們網路設定裡面對網路有一定的限制,今天小編教你們如何解除網路限制,讓網路速度變得極快,只要選擇進階設定裡面將其值改為「20MHz/ 40MHzauto」即可,具體的教學一起來看看吧。提升win7電腦網速的方法1.小編這裡以win7系統為例說明,滑鼠右鍵桌面任務欄右側的「網路」圖標,選擇「網路和共享中心」開啟。 2.在新出現的介面中點擊“更改適配器設定”,然後滑鼠右鍵“本地連接”選擇“屬性”開啟。 3.在開啟的「本地

硬體加速怎麼開隨著科技的發展,硬體加速成為了提升電腦效能的重要手段之一。利用硬體加速,我們可以加快電腦運作速度,提升圖形處理能力,讓電腦更有效率穩定。那麼,硬體加速到底如何開啟呢?本文將為你詳細介紹。首先,我們需要先明確硬體加速的概念。硬體加速一般是指使用電腦的專用硬體進行加速處理,而不是透過軟體來完成。常見的硬體加速包括GPU(圖形處理器)加

如何設定Nginx代理伺服器以加速Web服務的回應時間?引言:在今天的網路時代,快速回應的Web服務對於使用者體驗至關重要。而Nginx作為一款高效能的輕量級反向代理伺服器,可以有效提升Web服務的回應速度。本文將介紹如何設定Nginx代理伺服器以加速Web服務的回應時間,並結合程式碼範例進行詳細說明。第一部分:安裝和設定Nginx代理伺服器安裝Nginx首

Vue中如何設定並使用CDN進行加速在Vue專案中,使用CDN(ContentDeliveryNetwork)可以有效加速網頁載入速度,提升使用者體驗。 CDN技術透過將靜態資源檔案分發到全球各個地點的伺服器上,使用戶可以從離用戶最近的伺服器上快速取得資源,減少了資料傳輸的時間和延遲。以下將詳細介紹Vue中如何配置和使用CDN進行加速。首先,我們需要找到一

如果我們的電腦上安裝的作業系統是win7,那麼有的小夥伴在使用的過程中如果遇到了開機時間變長的話,想要對自己的電腦進行最佳化,首先我們可以嘗試在電腦中進行相關的設置,關閉一些開機啟動項目。或是透過使用第三方加速軟體來進行相關的最佳化即可。詳細步驟就來看下小編是怎麼做的吧~win7開機怎麼優化加速1、電腦桌面不要放太多文件和圖標,會使電腦反應變慢的,軟體盡量不要安裝在c盤。 2.盡量設定ip為靜態ip,可減少電腦開機啟動時間及進入桌面後的反映時間。 3.現在的系統,佔記憶體也比較大,有必要的話,加多個內存
