码迷,mamicode.com
首页 > 其他好文 > 详细

缓动函数封装 详见

时间:2016-08-15 00:13:56      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:



function animate(element,strrs,fn){
// 判断是否开启定时器 如果有清空定时器
if(element.timeId){
clearInterval(element.timeId);
}
// 开启定时器
element.timeId =setInterval(function(){
//设置标记记录是否都达到目标
var flag =true;
//遍历对象的数组 改变元素的属性值
for(var strr in strrs ){
//判断属性是否为zIndex
if(strr ==="zIndex"){
element.style.zIndex = strrs[strr];
}else if(strr ==="opacity"){
//判断属性是否为opacity
//获取当前opacity的属性值 转化为number并检测能力
var current=parseFloat(getStyle(element,strr))||0;
current*=100;
//让当前值乘100保证是个整数
//定义步长为目标-当前值的10分之1 步长会越来越小 当不为整数时要取整
var step =(strrs[strr]*100-current)/10;
step = step>0?Math.ceil(step):Math.floor(step);
//改变属性值
current+=step;
element.style[strr]= current/100;
//兼容ie8
element.style.filter="alpha(opacity="+current+")";
if(step!==0){//判断是否已到达目标
flag =false;
}

}else{
//获取当前属性的属性值 转化为number并检测能力
var current=parseInt(getStyle(element,strr))||0;
//定义步长为目标-当前值的10分之1 步长会越来越小 当不为整数时要取整
var step =(strrs[strr]-current)/10;
step = step>0?Math.ceil(step):Math.floor(step);
//改变属性值
current+=step;
element.style[strr]= current + "px";
if(step!==0){//判断是否已到达目标
flag =false;
}
}

}
if(flag){//判断是否都已到达目标 达到则清除计时器
clearInterval(element.timeId);
if(fn){//判断是否有回调函数 有则调用
fn();
}
}

},20)
}

缓动函数封装 详见

标签:

原文地址:http://www.cnblogs.com/wjl3898/p/5771383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!