就是最后动画的封装,我的回调函数貌似不起作用,具体看代码。大神帮帮我。
var timer = null;
var flag = true;
function play(obj,json,fn){
clearInterval(obj.timer);
obj.timer = setInterval(function(){
for(var attr in json){
var icur = 0;
if (attr=='opacity') {
icur = Math.round(parseFloat(getStyle(obj,attr))*100);
}else{
icur = parseInt(getStyle(obj,attr));
}
var speed = (json[attr]-icur) /10;
speed = speed >0 ? Math.ceil(speed):Math.floor(speed);
if (icur!=json[attr]) {
flag = false;
}
if (attr=='opacity') {
obj.style[attr] = 'alpha(opacity:'+(icur+speed)+')';
obj.style[attr] = (icur+speed) /100;
}else{
obj.style[attr] = icur + speed + 'px';
}
if (flag) {
clearInterval(obj.timer);
if (fn) {
fn();
}
}
}
},20);
}
function getStyle(obj,attr){
if (obj.currentStyle) {
return obj.currentStyle[attr];
}else{
return getComputedStyle(obj,false)[attr];
}
}
就是最后if判断flag为真的时候执行的回调函数,不起作用,求哪位大神帮帮我。