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 相关文章推荐
JQuery从头学起第二讲
Jul 04 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件
Aug 24 Javascript
jquery创建表格(自动增加表格)代码分享
Dec 25 Javascript
js实现汉字排序的方法
Jul 23 Javascript
javascript笔记之匿名函数和闭包
Feb 06 Javascript
基于vue中解决v-for使用报红并出现警告的问题
Mar 03 Javascript
vue下拉列表功能实例代码
Apr 08 Javascript
JS装饰器函数用法总结
Apr 21 Javascript
JQuery省市联动效果实现过程详解
May 08 jQuery
vue实现商品列表的添加删除实例讲解
May 14 Javascript
Vue指令实现OutClick的示例
Nov 16 Javascript
Vue elementUI表单嵌套表格并对每行进行校验详解
Feb 18 Vue.js
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中对用户身份认证实现两种方法
2011/06/04 PHP
解析smarty模板中类似for的功能实现
2013/06/18 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
jquery 弹出层实现代码
2009/10/30 Javascript
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
javascript随机显示背景图片的方法
2015/06/18 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
深入解析JavaScript中的arguments对象
2016/06/12 Javascript
AngularJS创建一个上传照片的指令实例代码
2018/02/24 Javascript
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
基于vue-upload-component封装一个图片上传组件的示例
2018/10/16 Javascript
详解在微信小程序的JS脚本中使用Promise来优化函数处理
2019/03/06 Javascript
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
Python常见数据结构详解
2014/07/24 Python
Python编程之变量赋值操作实例分析
2017/07/24 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
丹尼尔惠灵顿手表天猫官方旗舰店:Daniel Wellington
2017/08/25 全球购物
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
企业员工爱岗敬业演讲稿
2014/08/26 职场文书
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
2014年图书管理员工作总结
2014/12/01 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
演讲开头怎么书写?
2019/08/06 职场文书
源码安装apache脚本部署过程详解
2022/09/23 Servers