设置属性框架(结合定时器)

function getstyle(obj,name){ //本函数的作用:获取值,代替offset家族
if(obj.currentStyle){
return obj.currentStyle[name];
}
else{
return getComputedStyle(obj,false)[name];
}
}

function move(obj,o,refn){
//obj:对象
//o:所要设置的属性
//refn:回调函数(分步执行)
clearInterval(obj.timer);
obj.timer=setInterval(function(){

//i:属性名   o{i}:属性值
// for(var i in o){
// }

var stop=true;//布尔值//关

for(var attr in o){
var now=0;
//当前的属性值
if(attr=='opacity'){
now=parseFloat(getstyle(obj,attr))*100;
}else{
now=parseInt(getstyle(obj,attr));
}

var speed=(o[attr]-now)/10;
speed=speed>0?Math.ceil(speed):Math.floor(speed);

if(now!==o[attr]){
stop=false;
//不关闭定时器
}

if(attr=='opacity'){
obj.style.filter='alpha(opacity:'+(now+speed)+')';
obj.style.opacity=(now+speed)/100;
}
else{
obj.style[attr]=now+speed+'px';
//等号后面的属性值不用加obj
}

}

if(stop){
clearInterval(obj.timer);
if(refn){
//判断是否有回调函数,回调函数可看成参数进行传递
refn();
}
}
},20);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值