完美運動框架(多個屬性值同時變化)

1.setStyle:

<script>
        function setStyle(obj,json){
            var attr='';
            for(attr in json){
                alert(attr+'='+json[attr]);
                obj.style[attr]=json[attr];
            }
        }
        window.onload=function(){
            var oDiv=document.getElementById('div1');
            setStyle(oDiv,{width:'100px',height:'100px',background:'red'})
        }
    </script>

2、move.js增強版

function getStyle(obj,attr){
    if(obj.currentStyle){
        return obj.currentStyle[attr];
    }else{
        return getComputedStyle(obj,false)[attr];
    }
}
function startMove(obj,json,fn){
    clearInterval(obj.timer);
    obj.timer=setInterval(function(){
        var oStop=true;
        var attr='';
        for(attr in json){
            //1、取當前值
            var iCur=0;
            if(attr=='opacity'){
                iCur=parseInt(parseFloat(getStyle(obj,attr))*100);
            }else{
                iCur=parseInt(getStyle(obj,attr));
            }
            //2、計算速度
            var iSpeed=(json[attr]-iCur)/8;
            iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
            //3、檢測停止
                if(iCur!=json[attr]){
                    oStop=false;
                }
                if(attr=='opacity'){
                    obj.style.filter='alpha(opacity:'+(iCur+iSpeed)+')';
                    obj.style.opacity=(iCur+iSpeed)/100;
                    document.getElementById('txt1').value=obj.style.opacity;
                }else{
                    obj.style[attr]=iCur+iSpeed+'px';
                }
        }
        if(oStop){
            clearInterval(obj.timer);
            if(fn){
                fn();
            }
        }
    },30);
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章