1. 程式人生 > 實用技巧 >js封裝一個運動函式[move](js工具庫)

js封裝一個運動函式[move](js工具庫)

// 運動函式
function move(ele,obj,cb=function(){}){
    var timerObj = {};
    for(let attr in obj){
        timerObj[attr] = setInterval(function(){
            let target = obj[attr];
            if(attr == "opacity"){
                target *= 100;
            }
            let l = getStyle(ele,attr);
            
if(attr === "opacity"){ l *= 100; } l = parseFloat(l); if((target-l)/10>0){ percent = Math.ceil((target-l)/10); }else{ percent = Math.floor((target-l)/10); } l += percent; if
(l==target){ clearInterval(timerObj[attr]); delete timerObj[attr]; let k = 0; for(let i in timerObj){ k++; } if(k==0){ cb(); } }
if(attr === "opacity"){ ele.style[attr] = l/100 }else{ ele.style[attr] = l + "px" } },20) } } // 獲取樣式的函式 function getStyle(ele,attr){ if(window.getComputedStyle){ return window.getComputedStyle(ele)[attr]; }else{ return ele.currentStyle[attr]; } }