因为当你每点一次,就多一个setInterval在同时运行,例如你点了1次,每次加12,当点10次时,每次就等于加了120。如果你想多次点击都一样速度,可以在第一次点击后,把事件清除。<html> 
<head> 
<title> </title> 
</head> 
<body> 
<div> <input   onclick="m()"     type="button"   value="目标位置"   > </div> 
</div> 
<div     id="r"   style="position:absolute;"   > A </div> 
</body> 
<script   language= "javascript"   type= "text/javascript"> 
var   X=12; 
var   timename; 
function  m() 
{      clearInterval(timename)   
        timename=setInterval("c()",50);   

function   c() 

        document.getElementById( "r").style.left=X; 
        document.getElementById( "r").style.top=X; 
        X++; 

</script> 
</html>