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 相关文章推荐
js中substring和substr的详细介绍与用法
Aug 29 Javascript
javascipt匹配单行和多行注释的正则表达式
Nov 20 Javascript
ExtJs纵坐标值重复问题的解决方法
Feb 27 Javascript
解决jQuery使用JSONP时产生的错误
Dec 02 Javascript
轻松实现js图片预览功能
Jan 18 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
Jul 03 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
Sep 18 Javascript
Node.js学习教程之Module模块
Sep 03 Javascript
js实现贪吃蛇小游戏
Oct 29 Javascript
JS操作字符串转数字的常见方法示例
Oct 29 Javascript
使用Vue生成动态表单
Nov 26 Javascript
jQuery冲突问题解决方法
Jan 19 jQuery
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
第十一节--重载
2006/11/16 PHP
php mysql_real_escape_string函数用法与实例教程
2013/09/30 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
javascript 一个自定义长度的文本自动换行的函数
2007/08/19 Javascript
jquery 最简单的属性菜单
2009/10/08 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
利用js获取下拉框中所选的值
2016/12/01 Javascript
angular.fromJson与toJson方法用法示例
2017/05/17 Javascript
简单谈谈关于 npm 5.0 的新坑
2017/06/08 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
Vue 组件修改根实例的数据的方法
2019/04/02 Javascript
vue项目首屏加载时间优化实战
2019/04/23 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
[02:49]DOTA2完美大师赛首日观众采访
2017/11/23 DOTA
使用Python &amp; Flask 实现RESTful Web API的实例
2017/09/19 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
2019/07/04 Python
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
一套C#面试题
2013/10/09 面试题
新闻专业推荐信范文
2013/11/20 职场文书
20年同学聚会感言
2014/02/03 职场文书
酒店保安领班职务说明书
2014/03/04 职场文书
奥巴马获胜演讲稿
2014/05/15 职场文书
导师工作推荐信范文
2014/05/17 职场文书
金融保险专业求职信
2014/09/03 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
2019已经过半,你知道年中工作总结该怎么写吗?
2019/07/03 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书