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 相关文章推荐
List the Codec Files on a Computer
Jun 18 Javascript
JavaScript和JQuery实用代码片段(一)
Apr 07 Javascript
jquery的Tooltip插件 qtip使用详细说明
Sep 08 Javascript
Js冒泡事件详解及阻止示例
Mar 21 Javascript
js 验证身份证信息有效性
Mar 28 Javascript
单击某一段文字改写文本颜色
Jun 06 Javascript
jquery插件格式实例分析
Jun 16 Javascript
JavaScript中的splice方法用法详解
Jul 20 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
Aug 05 Javascript
原生JS京东轮播图代码
Mar 22 Javascript
微信小程序Echarts图表组件使用方法详解
Jun 25 Javascript
vue循环数组改变点击文字的颜色
Oct 14 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 在文件指定行插入数据的代码
2010/05/08 PHP
php 函数使用方法与函数定义方法
2010/05/09 PHP
《PHP编程最快明白》第三讲:php数组
2010/11/01 PHP
深入理解require与require_once与include以及include_once的区别
2013/06/05 PHP
php计算数组不为空元素个数的方法
2014/01/27 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
js电信网通双线自动选择技巧
2008/11/18 Javascript
JQuery this 和 $(this) 的区别
2009/08/23 Javascript
js变换显示图片的实例
2013/04/16 Javascript
加载远程图片时,经常因为缓存而得不到更新的解决方法(分享)
2013/06/26 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
2017/02/27 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
微信小程序利用button控制条件标签的变量问题
2020/03/15 Javascript
python使用Image处理图片常用技巧分析
2015/06/01 Python
30秒轻松实现TensorFlow物体检测
2018/03/14 Python
pandas修改DataFrame列名的方法
2018/04/08 Python
python重试装饰器的简单实现方法
2019/01/31 Python
简单了解python中对象的取反运算符
2019/07/01 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
质检部部长职责
2013/12/16 职场文书
银行演讲稿范文
2014/01/03 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
巾帼志愿者活动方案
2014/08/17 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
行政文员岗位职责
2015/02/04 职场文书
故意伤害辩护词
2015/05/21 职场文书
python 闭包函数详细介绍
2022/04/19 Python