var goToTop = 0; var goToLeft = 0; var divID = ""; var isMoving = false; function moveDivTo( id, topPos, leftPos ){ divID = id; goToTop = topPos; goToLeft = leftPos; if( !isMoving ) intMove(); } function intMove(){ isMoving = true; var currentTopPos = eval(document.getElementById(divID).style.top.substr(0, document.getElementById(divID).style.top.length - 2 )); var currentLeftPos = eval(document.getElementById(divID).style.left.substr(0, document.getElementById(divID).style.left.length - 2 )); var diffTop = goToTop - currentTopPos; var diffLeft = goToLeft - currentLeftPos; var speedTop = Math.floor( diffTop * 0.1 ); var speedLeft = Math.floor( diffLeft * 0.1 ); if( Math.abs(diffTop) <= 9 ) speedTop = Math.abs(diffTop) / diffTop; if( Math.abs(diffLeft) <= 9 ) speedLeft = Math.abs(diffLeft) / diffLeft; var newTopPos = currentTopPos + speedTop; var newLeftPos = currentLeftPos + speedLeft; if( !isNaN(newTopPos) ) document.getElementById(divID).style.top = newTopPos + "px"; if( !isNaN(newLeftPos) ) document.getElementById(divID).style.left = newLeftPos + "px"; if( currentTopPos == goToTop && currentLeftPos == goToLeft ){ isMoving = false; return; }else{ setTimeout("intMove();",10); } return; }