国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 14:21:09
字體:
供稿:網(wǎng)友
調(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
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 炉霍县| 鄂托克前旗| 吴堡县| 台中县| 克什克腾旗| 大安市| 鞍山市| 清河县| 安顺市| 屏东市| 昌宁县| 贞丰县| 德令哈市| 双城市| 莫力| 博乐市| 屏东市| 抚州市| 武穴市| 朝阳市| 外汇| 天镇县| 库车县| 濉溪县| 久治县| 百色市| 宁城县| 鹿邑县| 峨边| 理塘县| 札达县| 吉木萨尔县| 北辰区| 通渭县| 府谷县| 永平县| 噶尔县| 保定市| 子长县| 济南市| 崇义县|