v = ( c / d ) * t + b
c:总路程
d :总时间
t:已过时间
b:初始位置
位置 = (总路程 / 总时间)* 已过时间 + 初始位置
调用 Tween.js
function move(param){
var el = param.el;
var attr = param.attr;
var target = param.target;
var d = param.d;
var ease = param.ease || "linear";
var callback = param.callback;
var b = parseFloat(getComputedStyle(el)[attr]);//初始值
var c = target - b;//总路程
var past = new Date();//获取执行函数的时候的时间
var valW=setInterval(function(){
var currentTime = new Date();
var t = currentTime - past;
if(t >= d){
t = d;
clearInterval(valW);
}
// var v = ( c / d ) * t - b;
var v = Tween[ease](t, b, c, d);
el.style[attr] = v + "px";
if(t == d){
//完整版 左边为真返回右边,左边为undefined返回左边
(typeof callback === "function")&&callback();
// (typeof callback === "function")callback&&callback(); 缩写
//callback&&callback();
}
},16)
}
move({
el:box,
attr:"width",
target:500,
d:1000,
callback:function(){console.lgo(123)}
})