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 相关文章推荐
JavaScript的类型转换(字符转数字 数字转字符)
Aug 30 Javascript
JavaScript 原型继承之构造函数继承
Aug 26 Javascript
JS控制一个DIV层在指定时间内消失的方法
Feb 17 Javascript
JavaScript 实现鼠标拖动元素实例代码
Feb 24 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
May 13 Javascript
jquery获取点击控件的绝对位置简单实例
Oct 13 Javascript
bootstrap表单示例代码分享
May 18 Javascript
Angular 1.x个人使用的经验小结
Jul 19 Javascript
vue-router 导航钩子的具体使用方法
Aug 31 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
Nov 25 Javascript
Node.js控制台彩色输出的方法与原理实例详解
Dec 01 Javascript
微信小程序8种数据通信的方式小结
Feb 03 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
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
PHP预定义接口――Iterator用法示例
2020/06/05 PHP
arguments对象
2006/11/20 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
移动开发之自适应手机屏幕宽度
2016/11/23 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
js类的继承定义与用法分析
2019/06/21 Javascript
echarts统计x轴区间的数值实例代码详解
2019/07/07 Javascript
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
Python 初始化多维数组代码
2008/09/06 Python
python每次处理固定个数的字符的方法总结
2013/01/29 Python
Linux 发邮件磁盘空间监控(python)
2016/04/23 Python
python实现按任意键继续执行程序
2016/12/30 Python
浅谈Python基础之I/O模型
2017/05/11 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
办公室文秘岗位职责
2013/11/15 职场文书
小学生评语大全
2014/04/18 职场文书
环保公益策划方案
2014/08/15 职场文书
学校总务处领导干部个人对照检查材料思想汇报
2014/10/06 职场文书
教师党员自我评议不足范文
2014/10/19 职场文书
医院感染管理制度
2015/08/05 职场文书
党员心得体会范文2016
2016/01/23 职场文书
Nginx防盗链与服务优化配置的全过程
2022/01/18 Servers
基于redis+lua进行限流的方法
2022/07/23 Redis