碰撞菜单(碰撞弹框的效果)
Posted gxywb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了碰撞菜单(碰撞弹框的效果)相关的知识,希望对你有一定的参考价值。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> #div1{ width: 100px; height: 100px; background: red; position: absolute; } </style> <script> window.onload=function(){ var oDiv=document.getElementById("div1"); var disX=0; var disY=0; var prevX=0; var prevY=0; var iSpeedX=0; var iSpeedY=0; var timer=null; oDiv.onmousedown=function(ev){ var ev=ev||window.event; disX=ev.clientX-oDiv.offsetLeft; disY=ev.clientY-oDiv.offsetTop; prevX=ev.clientX; prevY=ev.clientY; document.onmousemove=function(ev){ var ev=ev||window.event; oDiv.style.left=ev.clientX-disX+"px"; oDiv.style.top=ev.clientY-disY+"px"; iSpeedX=ev.clientX-prevX; iSpeedY=ev.clientY-prevY; prevX=ev.clientX; prevY=ev.clientY; } document.onmouseup=function(){ document.onmousemove=null; document.onmouseup=null; startMove(); } return false; }; function startMove(){ clearInterval(timer); timer=setInterval(function(){ iSpeedY+=3; var L=oDiv.offsetLeft+iSpeedX; var T=oDiv.offsetTop+iSpeedY; if(T>document.documentElement.clientHeight-oDiv.offsetHeight){ T=document.documentElement.clientHeight-oDiv.offsetHeight; iSpeedY*=-1; iSpeedY*=0.75; iSpeedX*=0.75; }else if(T<0){ T=0; iSpeedY*=-1; iSpeedY*=0.75; } if(L>document.documentElement.clientWidth-oDiv.offsetWidth){ L=document.documentElement.clientWidth-oDiv.offsetWidth; iSpeedX*=-1; iSpeedX*=0.75; }else if(L<0){ L=0; iSpeedX*=-1; iSpeedX*=0.75; } oDiv.style.left=L+"px"; oDiv.style.top=T+"px"; },30) } } </script> </head> <body> <div id="div1"></div> </body> </html>
以上是关于碰撞菜单(碰撞弹框的效果)的主要内容,如果未能解决你的问题,请参考以下文章