就是最后動(dòng)畫的封裝,我的回調(diào)函數(shù)貌似不起作用,具體看代碼。大神幫幫我。
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為真的時(shí)候執(zhí)行的回調(diào)函數(shù),不起作用,求哪位大神幫幫我。