js封裝一個運動函式[move](js工具庫)
阿新 • • 發佈:2020-08-21
// 運動函式 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]; } }