javascript 实现 原路返回


Posted in Javascript onJanuary 21, 2015

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 相关文章推荐
用倒置滤镜把div倒置,再把table倒置。
Jul 31 Javascript
JavaScript XML和string相互转化实现代码
Jul 04 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
May 19 Javascript
使用jquery实现简单的ajax
Jul 08 Javascript
JS将秒换成时分秒实现代码
Sep 03 Javascript
JS实现自动定时切换的简洁网页选项卡效果
Oct 13 Javascript
jQuery实现的左右移动焦点图效果
Jan 14 Javascript
浅析创建javascript对象的方法
May 13 Javascript
javascript数组去重常用方法实例分析
Apr 11 Javascript
[js高手之路]单例模式实现模态框的示例
Sep 01 Javascript
AngularJS实现的base64编码与解码功能示例
May 17 Javascript
Vue中JS动画与Velocity.js的结合使用
Feb 13 Javascript
html的DOM中document对象forms集合用法实例
Jan 21 #Javascript
浅谈javascript 函数内部属性
Jan 21 #Javascript
浅谈javascript 函数属性和方法
Jan 21 #Javascript
html的DOM中document对象images集合用法实例
Jan 21 #Javascript
浅谈javascript面向对象程序设计
Jan 21 #Javascript
html的DOM中Event对象onabort事件用法实例
Jan 21 #Javascript
封装好的一个万能检测表单的方法
Jan 21 #Javascript
You might like
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
php数组随机排序实现方法
2015/06/13 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
2016/07/13 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
关于jQuery参考实例2.0 用jQuery选择元素
2013/04/07 Javascript
文档对象模型DOM通俗讲解
2013/11/01 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
JavaScript数组的定义及数字操作技巧
2016/06/06 Javascript
jQuery实现给input绑定回车事件的方法
2017/02/09 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
实例讲解Python爬取网页数据
2018/07/08 Python
利用Python实现kNN算法的代码
2019/08/16 Python
使用python获取邮箱邮件的设置方法
2019/09/20 Python
python实现按首字母分类查找功能
2019/10/31 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
Django中Aggregation聚合的基本使用方法
2020/07/09 Python
selenium学习教程之定位以及切换frame(iframe)
2021/01/04 Python
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
美国在线购物频道:Shop LC
2019/04/21 全球购物
应届生个人求职信模板
2013/11/26 职场文书
校园十大歌手策划书
2014/02/01 职场文书
12月小学生校园广播稿
2014/02/04 职场文书
平安建设实施方案
2014/03/19 职场文书
无刑事犯罪记录证明
2014/09/18 职场文书
服务员岗位职责
2015/02/03 职场文书
小学生手册家长意见
2015/06/03 职场文书
大学生受助感言
2015/08/01 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
深入解析MySQL索引数据结构
2021/10/16 MySQL
Python必备技巧之字符数据操作详解
2022/03/23 Python
python 使用pandas读取csv文件的方法
2022/12/24 Python