JS完美运动框架

// for in 循环 ---json
function getStyle(obj, attr) {
    return obj.currentStyle?obj.currentStyle[attr]:window.getComputedStyle(obj, false)[attr];
}

function getByClassName(parent, name) {
    var aResult = [];
    var arr = parent.getElementsByTagName('*');
    for (var i=0,len=arr.length; i<len;i++) {
        if (arr[i].className===name) {
            aResult.push(arr[i]);
        }
    }
    return aResult;
}

function startMove(obj, json, fn) {
    clearInterval(obj.timer);
    obj.timer = setInterval(function () {
        var bStop = true;
        for(var attr in json) {
            var icur = 0;
            if (attr==='opacity') {
                icur = parseInt(parseFloat(getStyle(obj, attr))*100);
            } else {
                icur = parseInt(getStyle(obj, attr));
            }
            var speed = (json[attr] - icur)/8;
            speed = speed>0?Math.ceil(speed):Math.floor(speed);

            if (icur!==json[attr]) {
                bStop = false;
            }
            if (attr==='opacity') {
                obj.style.opacity = (icur + speed) /100;
                obj.style.filter = "alpha(opacity="+(icur+speed)+")";
            } else {
                obj.style[attr] = icur + speed + 'px';
            }
        }
        if (bStop) {
            clearInterval(obj.timer);
            if (fn) {
                fn();
            }
        }
    },30);
}

不是完美版,还有些待修改的地方

你可能感兴趣的:(JS完美运动框架)