源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

javascript 实现 原路返回

  • 时间:2020-11-23 09:14 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:javascript 实现 原路返回
css代码
[u]复制代码[/u] 代码如下:
<style type="text/css">         * {             margin: 0px;             padding: 0px;             font-family: "micsoft yahei","微软雅黑";             font-size: 15px;         }         div{             width: 50px;             height: 50px;             background: #f00;             border-radius:5px ;             -moz-border-radius: 5px;             -webkit-border-radius: 5px;             cursor: pointer;             position:  absolute;             top: 60px;             left: 30px;         }         input{             position: absolute;             top: 10px;             left: 10px;             padding: 3px;             cursor: pointer;         }     </style>
html代码
[u]复制代码[/u] 代码如下:
 <body>  <input type="button" value="原路返回"/>  <div></div>  </body>
javascript代码
[u]复制代码[/u] 代码如下:
<script type="text/javascript">           //1、以鼠标在div上点击触发为开始           //2、点击鼠标移动时触发鼠标移动事件 向数组内注入数据(移动的坐标)           //3、以鼠标从div上移开为结束           //4、点击“原路返回”按钮遍历数组(移动的坐标) 定时触发数组内的坐标移动div 达到”返回“的功能             window.onload=function(){                 var oDiv=document.getElementsByTagName("div")[0];                 var oBtn=document.getElementsByTagName("input")[0];                 var time=null,arrTop=[],arrLeft=[];                 oDiv.onmousedown=function(ev){                     var event=ev || window.event;                     //获取鼠标在div内的坐标                     var disX=event.clientX-oDiv.offsetLeft;                     var disY=event.clientY-oDiv.offsetTop;                     arrTop=[60];                     arrLeft=[30];                     document.onmousemove=function(ev){                         var event=ev || window.event;                         //获取拖拽后鼠标的位置                         var l=event.clientX;                         var t=event.clientY;                         //把拖拽后的位置存进数组里面,用拖拽后鼠标的位置减去鼠标在物体上的位置,就是拖拽后物体的位置                         arrLeft.push(l-disX);                         arrTop.push(t-disY);                         oDiv.style.left=l-disX +"px";                         oDiv.style.top=t-disY +"px";                     };                     document.onmouseup=function(){                         document.onmousemove=null;                         document.onmouseup=null;                     };                     return false;                 }                 //原路返回的核心就是把移动时的坐标记录下来,然后进行数组重排,并设定定时器把数组内的搞宽赋值给物体。                 oBtn.onclick=function(){                     arrTop.reverse();//重排                     arrLeft.reverse();//重排                     var i=0;                     oBtn.time=setInterval(function(){                         oDiv.style.top=arrTop[i]+"px";                         oDiv.style.left=arrLeft[i]+"px";                         i++;                         if(i==arrTop.length){                             clearInterval(oBtn.time);                             arrTop=[];                             arrLeft=[];                         }                     },20);                 }             }     </script>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部