最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript動畫對象支持加速、減速、緩入、緩出的實現(xiàn)代碼

 更新時間:2012年09月30日 21:01:29   作者:  
javascript動畫對象支持加速、減速、緩入、緩出的實現(xiàn)代碼,需要的朋友可以參考下
調(diào)用接口:
復制代碼 代碼如下:

/**
* @param elem {HTMLElement} 執(zhí)行動畫的HTML元素
* @param params {JSON} 動畫執(zhí)行過過程中需要修改的HTML屬性
* @param duration {Number} 可選,動畫執(zhí)行時間,單位毫秒
* @param easing {String} 可選,動畫執(zhí)行的方式,緩入easeIn、緩出easeOut
* @param callback {Function} 可選,動畫執(zhí)行完成時的回調(diào)函數(shù)
* @return
*/
effect.animate(elem, params, duration, easing, callback);

使用它用不了20行代碼就可以做一個產(chǎn)品圖片減速淡出、加速淡入的切換效果點擊這里查看演示效果
復制代碼 代碼如下:

//輔助對象,讀/寫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: 動畫已經(jīng)執(zhí)行的時間(實際上時執(zhí)行多少次/幀數(shù))
* @param Number b: 起始位置
* @param Number c: 終止位置
* @param Number d: 從起始位置到終止位置的經(jīng)過時間(實際上時執(zhí)行多少次/幀數(shù))
*/
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, attr));
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<changes.length; i++){
b = changes[i].b;
c = changes[i].c;
attr = changes[i].attr;
attribute.set(elem, attr, tween[easing](t, b, c, d));
if(d <= t){
attribute.set(elem, attr, params[attr]);
callback();
return;
}
}
setTimeout(arguments.callee, fps);
}, fps);
}
};
//by rentj1@163.com

相關文章

  • JS實現(xiàn)網(wǎng)頁導航條特效

    JS實現(xiàn)網(wǎng)頁導航條特效

    這篇文章主要為大家詳細介紹了JS實現(xiàn)網(wǎng)頁導航條特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • JS中字符串trim()使用示例

    JS中字符串trim()使用示例

    本文主要給大家介紹的是javascript中的擴展方法字符串trim()的使用指南,十分的簡單實用,有需要的小伙伴可以參考下。
    2015-05-05
  • JavaScript中的函數(shù)(二)

    JavaScript中的函數(shù)(二)

    函數(shù)是由事件驅動的或者當它被調(diào)用時執(zhí)行的可重復使用的代碼塊。本文給大家介紹介紹javascript中的函數(shù)(二),對javascript函數(shù)相關知識感興趣的朋友一起學習吧
    2015-12-12
  • 三種動態(tài)加載js的jquery實例代碼另附去除js方法

    三種動態(tài)加載js的jquery實例代碼另附去除js方法

    這篇文章主要介紹了三種動態(tài)加載js的jquery實例代碼另附去除js方法,需要的朋友可以參考下
    2014-04-04
  • js中各種時間格式的轉換方法舉例

    js中各種時間格式的轉換方法舉例

    近幾天在做百度地圖時,需要轉換時間格式并做顯示,下面這篇文章主要給大家介紹了關于js中各種時間格式的轉換方法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • 如何通過IntersectionObserver實現(xiàn)懶加載

    如何通過IntersectionObserver實現(xiàn)懶加載

    這篇文章主要介紹了通過IntersectionObserver實現(xiàn)懶加載,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • 紅黑樹的插入詳解及Javascript實現(xiàn)方法示例

    紅黑樹的插入詳解及Javascript實現(xiàn)方法示例

    這篇文章主要給大家介紹了關于紅黑樹的插入的相關資料,以及Javascript實現(xiàn)的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起看看吧。
    2018-03-03
  • js實現(xiàn)圖片懶加載效果

    js實現(xiàn)圖片懶加載效果

    這篇文章主要為大家詳細介紹了js實現(xiàn)圖片懶加載效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 手機端實現(xiàn)Bootstrap簡單圖片輪播效果

    手機端實現(xiàn)Bootstrap簡單圖片輪播效果

    這篇文章主要為大家詳細介紹了基于Bootstrap的簡單輪播圖的手機實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 微信小程序實現(xiàn)簡單搜索功能

    微信小程序實現(xiàn)簡單搜索功能

    這篇文章主要為大家詳細介紹了微信小程序實現(xiàn)簡單搜索功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07

最新評論

疏勒县| 江永县| 红桥区| 子长县| 绥宁县| 佛山市| 湄潭县| 金平| 信阳市| 丰都县| 赤城县| 措美县| 永靖县| 吉木萨尔县| 永济市| 新沂市| 山东省| 双桥区| 邻水| 色达县| 呈贡县| 东乡县| 淮安市| 乌兰浩特市| 砀山县| 达拉特旗| 泽州县| 都兰县| 甘洛县| 平湖市| 灵寿县| 和静县| 安吉县| 蓬溪县| 芜湖县| 于田县| 永福县| 右玉县| 嘉祥县| 平顺县| 太和县|