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 相关文章推荐
CSDN轮换广告图片轮换效果
Mar 27 Javascript
JQuery文本框高亮显示插件代码
Apr 02 Javascript
解析页面加载与js函数的执行 onload or ready
Dec 12 Javascript
了解Javascript的模块化开发
Mar 02 Javascript
jQuery插件实现无缝滚动特效
Nov 24 Javascript
深入理解Javascript中的自执行匿名函数
Jun 03 Javascript
微信开发 消息推送实现代码
Oct 21 Javascript
一个例子轻松学会Vue.js
Jan 02 Javascript
JavaScript实现公历转农历功能示例
Feb 13 Javascript
详解vuejs几种不同组件(页面)间传值的方式
Jun 01 Javascript
angular实现input输入监听的示例
Aug 31 Javascript
vue中实现回车键登录功能
Feb 19 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中上传大体积文件时需要的设置
2006/10/09 PHP
php自动适应范围的分页代码
2008/08/05 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
2014/06/30 PHP
解读PHP中上传文件的处理问题
2016/05/29 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
2016/07/13 PHP
xml和web特殊字符
2009/04/28 Javascript
jquery 双色表格实现代码
2009/12/08 Javascript
javascript中使用replaceAll()函数实现字符替换的方法
2010/12/25 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
js实现数组转换成json
2015/06/26 Javascript
js和jquery实现监听键盘事件示例代码
2020/06/24 Javascript
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
解决vue-cli3 使用子目录部署问题
2018/07/19 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
解决vue+router路由跳转不起作用的一项原因
2020/07/19 Javascript
Vue的Options用法说明
2020/08/14 Javascript
Python heapq使用详解及实例代码
2017/01/25 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
Python做智能家居温湿度报警系统
2018/09/25 Python
python下载库的步骤方法
2019/10/12 Python
python中添加模块导入路径的方法
2021/02/03 Python
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
C#如何调用Windows程序打开一个文档
2014/12/26 面试题
应届生保险求职信
2013/11/11 职场文书
部队党性分析材料
2014/02/16 职场文书
十周年庆典策划方案
2014/06/03 职场文书
教师求职自荐书
2014/06/14 职场文书
2014国庆节演讲稿:祖国在我心中(400字)
2014/09/25 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
酒店厨房管理制度
2015/08/06 职场文书
早安问候语大全
2015/11/10 职场文书
2016国培研修心得体会
2016/01/08 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书
Redis之RedisTemplate配置方式(序列和反序列化)
2022/03/13 Redis