javascript 实现 原路返回_Javascript教程-查字典教程网
javascript 实现 原路返回
javascript 实现 原路返回
发布时间:2016-12-30 来源:查字典编辑
摘要:css代码复制代码代码如下:*{margin:0px;padding:0px;font-family:"micsoftyahei","微软雅...

css代码

复制代码 代码如下:

<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代码

复制代码 代码如下:

<body>

<input type="button" value="原路返回"/>

<div></div>

</body>

javascript代码

复制代码 代码如下:

<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>

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类