JavaScript简单拖拽效果(1)


Posted in Javascript onMay 17, 2017

拖拽在前端开发中是很常见的功能,也是基本功之一,本文是不限制范围的拖拽也就是最简单的拖拽,鼠标按下对象,拖拽,松开停止!
1,onmousedown事件
2,onmousemove事件
3,onmouseup事件

因为在按下时拖动,所以onmousemove事件在down后才注册,up事件是用来解绑事件,消除事件!

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>简单拖拽</title>
  <style type="text/css">
    * {
      margin: 0;
      padding: 0;
    }
    #div1 {
      width: 100px;
      height: 100px;
      background: orange;
      position: absolute;
    }
  </style>
</head>
<body style="height: 500000px;">
  <div id="div1"></div>

  <script type="text/javascript">
    function getStyle(obj, attr) {
      if (obj.currentStyle) {
        return obj.currentStyle[attr];
      } else {
        return getComputedStyle(obj, null)[attr];
      }
    }
    var oDiv = document.getElementById('div1');
    oDiv.onmousedown = function(ev) {
      var oEvent = ev || event;
      // var disX = oEvent.clientX - oDiv.offsetLeft;
      // var disY = oEvent.clientY - oDiv.offsetTop;

      var disX = oEvent.clientX - parseInt(getStyle(oDiv, 'left'));
      var disY = oEvent.clientY - parseInt(getStyle(oDiv, 'top'));

      document.onmousemove = function(ev) {
        var oEvent = ev || event;
        oDiv.style.left = oEvent.clientX - disX + 'px';
        oDiv.style.top = oEvent.clientY - disY + 'px';
      };
      document.onmouseup = function() {
        document.onmousemove = null;
        document.onmouseup = null;
      };
      return false;
    };
  </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
firefox插件Firebug的使用教程
Jan 02 Javascript
js模拟类继承小例子
Jul 17 Javascript
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
Jul 15 Javascript
关于递归运算的顺序测试代码
Nov 30 Javascript
在JavaScript中访问字符串的子串
Jul 07 Javascript
Bootstrap模仿起筷首页效果
May 09 Javascript
Node.js的Koa框架上手及MySQL操作指南
Jun 13 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
Dec 28 Javascript
详解JQuery基础动画操作
Apr 12 jQuery
Vue切换组件实现返回后不重置数据,保留历史设置操作
Jul 21 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
Dec 05 Javascript
JS相册图片抖动放大展示效果的示例代码
Jan 29 Javascript
node.js连接MongoDB数据库的2种方法教程
May 17 #Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
May 17 #Javascript
Vue.js鼠标悬浮更换图片功能
May 17 #Javascript
12个非常有用的JavaScript技巧
May 17 #Javascript
Javascript中的async awai的用法
May 17 #Javascript
ES6入门教程之Iterator与for...of循环详解
May 17 #Javascript
angular.fromJson与toJson方法用法示例
May 17 #Javascript
You might like
php中cookie的作用域
2008/03/27 PHP
php Smarty date_format [格式化时间日期]
2010/03/15 PHP
php懒人函数 自动添加数据
2011/06/28 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
Laravel核心解读之异常处理的实践过程
2019/02/24 PHP
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
玩转方法:call和apply
2014/05/08 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
数组Array的一些方法(总结)
2017/02/17 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
2018/07/01 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
2018/07/06 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
你不可不知的Vue.js列表渲染详解
2019/10/01 Javascript
Vue实现验证码功能
2019/12/03 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
python flask实现分页的示例代码
2018/08/02 Python
Selenium鼠标与键盘事件常用操作方法示例
2018/08/13 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
python利用Excel读取和存储测试数据完成接口自动化教程
2020/04/30 Python
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
四风对照检查材料思想汇报
2014/09/20 职场文书
2014年外联部工作总结
2014/11/17 职场文书
夫妻分居协议书范本
2014/11/28 职场文书
银行优秀员工推荐信
2015/03/24 职场文书
大学毕业生自我鉴定范文
2019/06/21 职场文书
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis