<script>
window.onload=function (){
    var oDiv=document.getElementById("div1");
    oDiv.onmouseover=function(){
        startMove(0);
    };
    oDiv.onmouseout=function(){
        startMove(-200);
    };
};
    var timer=null;
    function startMove(iTarget){
        
        var oDiv=document.getElementById("div1");
        
        clearInterval(timer);
        timer=setInterval(function (){
            var speed=0;

            if(oDiv.offsetLeft>iTarget)
            {
                speed=-10;
            }
            else
            {
                speed=10;
            }
            if(oDiv.offsetLeft==iTarget){
                clearInterval(timer);
            }else{
                oDiv.style.left=oDiv.offsetLeft+speed+'px';
            }
        },30);

    }


</script>

基本上元素的运动满足以上的一个框架:

用BOM处理事件,每个事件中调用一个运动函数,函数的参数以一个为好。

在定义运动函数前,初始化一个定时器timer。然后:

DOM-->关闭上一个定时器-->定时函数-->判断是否达到目标(否则开始运动)。

对于独自撸代码的人来说,注意代码的完整与正确是重中之重,否则调到死你也不知道为什么错TAT。。。