博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
拖拽+碰撞+重力
阅读量:4611 次
发布时间:2019-06-09

本文共 2394 字,大约阅读时间需要 7 分钟。

window.οnlοad=function (){    var oDiv=document.getElementById('div1');        var lastX=0;    var lastY=0;        oDiv.onmousedown=function (ev)    {        var oEvent=ev||event;                var disX=oEvent.clientX-oDiv.offsetLeft;        var disY=oEvent.clientY-oDiv.offsetTop;                document.onmousemove=function (ev)        {            var oEvent=ev||event;                        var l=oEvent.clientX-disX;            var t=oEvent.clientY-disY;                        oDiv.style.left=l+'px';            oDiv.style.top=t+'px';                        iSpeedX=l-lastX;            iSpeedY=t-lastY;                        lastX=l;            lastY=t;                        document.title='x:'+iSpeedX+', y:'+iSpeedY;        };                document.onmouseup=function ()        {            document.onmousemove=null;            document.onmouseup=null;                        startMove();        };                clearInterval(timer);    };};var timer=null;var iSpeedX=0;var iSpeedY=0;function startMove(){    clearInterval(timer);        timer=setInterval(function (){        var oDiv=document.getElementById('div1');                iSpeedY+=3;                var l=oDiv.offsetLeft+iSpeedX;        var t=oDiv.offsetTop+iSpeedY;                if(t>=document.documentElement.clientHeight-oDiv.offsetHeight)        {            iSpeedY*=-0.8;            iSpeedX*=0.8;            t=document.documentElement.clientHeight-oDiv.offsetHeight;        }        else if(t<=0)        {            iSpeedY*=-1;            iSpeedX*=0.8;            t=0;        }                if(l>=document.documentElement.clientWidth-oDiv.offsetWidth)        {            iSpeedX*=-0.8;            l=document.documentElement.clientWidth-oDiv.offsetWidth;        }        else if(l<=0)        {            iSpeedX*=-0.8;            l=0;        }                if(Math.abs(iSpeedX)<1)        {            iSpeedX=0;        }                if(Math.abs(iSpeedY)<1)        {            iSpeedY=0;        }                if(iSpeedX==0 && iSpeedY==0 && t==document.documentElement.clientHeight-oDiv.offsetHeight)        {            clearInterval(timer);            alert('停止');        }        else        {            oDiv.style.left=l+'px';            oDiv.style.top=t+'px';        }                document.title=iSpeedX;    }, 30);}

转载于:https://www.cnblogs.com/ggbd-lie/archive/2012/11/18/2776104.html

你可能感兴趣的文章
uva 11404
查看>>
《梦断代码》读后感②
查看>>
算法-MergeSort
查看>>
11.22面试例题
查看>>
c#中的char byte string 类型之间的转换
查看>>
关于 NSInvocation 的疑问
查看>>
217. Contains Duplicate
查看>>
android:MediaPlayer
查看>>
sgu 174 Walls
查看>>
C#委托与事件学习笔记
查看>>
北京动点手机应用案例【捧腹笑话】客户端
查看>>
树莓派连接18b20测温度
查看>>
jQuery遍历之children()方法
查看>>
STL源码剖析---vector
查看>>
git常用操作
查看>>
需求分析阅读笔记3
查看>>
数楼梯
查看>>
【转】Java内存溢出(java.lang.OutOfMemoryError)问题及其解决方法
查看>>
C#调用java包里的方法
查看>>
Java面试题集(1-50)
查看>>