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 相关文章推荐
[原创]静态页面也可以实现预览 列表不同的显示方式
Oct 14 Javascript
jquery 最简单易用的表单验证插件
Feb 27 Javascript
解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
May 13 Javascript
文本框input聚焦失焦样式实现代码
Oct 12 Javascript
JavaScript中的包装对象介绍
Jan 27 Javascript
javascript实现多级联动下拉菜单的方法
Feb 06 Javascript
100多个基础常用JS函数和语法集合大全
Feb 16 Javascript
JSONP跨域请求
Mar 02 Javascript
JavaScript实现旋转轮播图
Aug 18 Javascript
swiper Scrollbar滚动条组件详解
Sep 08 Javascript
jquery获取input输入框中的值
Nov 13 jQuery
vue axios封装httpjs,接口公用配置拦截操作
Aug 11 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 session 检测和注销
2009/03/16 PHP
php 代码优化的42条建议 推荐
2009/09/25 PHP
用php实现的获取网页中的图片并保存到本地的代码
2010/01/05 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
js左侧多级菜单动态的解决方案
2010/02/01 Javascript
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
JsRender实用入门教程
2014/10/31 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
BootStrap轮播HTML代码(推荐)
2016/12/10 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
js刷新页面location.reload()用法详解
2019/12/09 Javascript
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
Python 抓取动态网页内容方案详解
2014/12/25 Python
Python读写unicode文件的方法
2015/07/10 Python
python2.6.6如何升级到python2.7.14
2018/04/08 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
Django+Xadmin构建项目的方法步骤
2019/03/06 Python
python中def是做什么的
2020/06/10 Python
Python random模块的使用示例
2020/10/10 Python
简单掌握CSS3中resize属性的用法
2016/04/01 HTML / CSS
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
使用layui实现左侧菜单栏及动态操作tab项的方法
2020/11/10 HTML / CSS
小女主人连衣裙:Little Mistress
2017/07/10 全球购物
澳洲女装时尚在线:Blue Bungalow
2018/05/05 全球购物
得到Class的三个过程是什么
2012/08/10 面试题
Java语言程序设计测试题改错题部分
2014/07/22 面试题
幼儿园中班评语大全
2014/04/17 职场文书
教师继续教育反思周记
2015/06/25 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js