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实现关键字高亮功能
Nov 12 Javascript
jquery拖拽排序简单实现方法(效果增强版)
Feb 16 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
Aug 24 Javascript
利用Node.js制作爬取大众点评的爬虫
Sep 22 Javascript
Vue.js 递归组件实现树形菜单(实例分享)
Dec 21 Javascript
原生JS实现简单放大镜效果
Feb 08 Javascript
超全面的vue.js使用总结
Feb 12 Javascript
JS逻辑运算符短路操作实例分析
Jul 09 Javascript
JavaScript实现五子棋游戏的方法详解
Jul 08 Javascript
微信小程序制作扭蛋机代码实例
Sep 24 Javascript
JS实现基本的网页计算器功能示例
Jan 16 Javascript
Vue接口封装的完整步骤记录
May 14 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
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
2014/05/11 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
2017/05/18 Javascript
vue中父子组件注意事项,传值及slot应用技巧
2018/05/09 Javascript
JavaScript函数IIFE使用详解
2019/10/21 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
详解Python pygame安装过程笔记
2017/06/05 Python
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
Python读取word文本操作详解
2018/01/22 Python
python 不以科学计数法输出的方法
2018/07/16 Python
mac PyCharm添加Python解释器及添加package路径的方法
2018/10/29 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
Python持续监听文件变化代码实例
2020/07/22 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
HTML5+JS实现俄罗斯方块原理及具体步骤
2013/11/29 HTML / CSS
英国女士家居服网站:hush
2017/08/09 全球购物
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
Python里面search()和match()的区别
2016/09/21 面试题
党员教师个人对照检查材料范文
2014/09/25 职场文书
个人工作能力自我评价
2015/03/05 职场文书
结婚十年感言
2015/07/31 职场文书
小学生红领巾广播稿
2015/08/19 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL
基于python定位棋子位置及识别棋子颜色
2021/07/26 Python
MySQL里面的子查询的基本使用
2021/08/02 MySQL