JavaScriptタイマー管理スイッチ設定、コールバック関数

1556 ワード

var oBtn1 = document.getElementById('btn1'); var oBtn2 = document.getElementById('btn2'); var oDiv = document.getElementById('div1'); oDiv.timer = null; oBtn2.onclick = function() { doMove(oDiv,'left',12,800); } oBtn1 .onclick = function() { doMove(oDiv,'left',-12,10); } // function doMove(obj,attr,dir,target,endFn){ clearInterval(obj.timer); //alert(getStyle(oDiv,'left')); obj.timer = setInterval(function() { var speed = parseInt(getStyle(obj, attr))+dir if(speed>target&&dir>0 ||speed<target&&dir<0){ speed=target; } obj.style[attr] = speed + 'px'; if(speed==target){ clearInterval(obj.timer); } if(endFn){ endFn(); } }, 30) } // function getStyle(obj, attr) { // //IE6.7.8 return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj)[attr] } // , , , -- doMove(oDiv,'left',12,900,function(){ doMove(oDiv,'top',12,900); });