JS实现鼠标按下拖拽效果


Posted in Javascript onJuly 23, 2020

原生JS实现鼠标按下拖拽效果,供大家参考,具体内容如下

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>鼠标拖动</title>
 <style type="text/css">
 body {
  margin: 0;
 }

 div {
  width: 200px;
  height: 200px;
  position: absolute;
  background-color: pink;
 }
 </style>
</head>

<body>

 <div onmousedown="downDiv(this)" onmousemove="moveDiv(this)" onmouseup="upDiv(this)">

 </div>



 <script>
 //定义变量储存div的宽高
 var obj_w, obj_h;
 //定义一个变量判断是否执行移动函数
 var mouseDown = false;

 //鼠标按下函数
 function downDiv(obj) {
  //获取div的宽高
  obj_w = obj.offsetWidth;
  obj_h = obj.offsetHeight;
  //鼠标
  var e = event || window.event;
  //e.clientX/Y 是获取鼠标相对浏览器的位置;将div中心自动居中到鼠标
  obj.style.left = (e.clientX - obj_w / 2) + "px";
  obj.style.top = (e.clientY - obj_h / 2) + "px";
  console.log(obj.style.left, obj.style.top)
  //按下时为ture,松开时为false,以判断是否执行执行mouveDiv
  mouseDown = true;

 }

 //鼠标移动函数
 function moveDiv(obj) {
  obj_w = obj.offsetWidth;
  obj_h = obj.offsetHeight;
  var e = event || window.event;
  console.log(e.clientX, e.clientY);
  console.log(obj_w, obj_h);
  if (mouseDown) {
  obj.style.left = (e.clientX - obj_w / 2) + "px";
  obj.style.top = (e.clientY - obj_h / 2) + "px";
  console.log(obj.style.left, obj.style.top)
  }

 }

 //鼠标松开函数
 function upDiv(obj) {
  mouseDown = false;
 }

 </script>
</body>

</html>

更多精彩文章请点击专题: Javascript拖拽特效汇总

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery调用wcf并展示出数据的方法
Jul 07 Javascript
js截取中英文字符串、标点符号无乱码示例解读
Apr 17 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
Jul 30 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
Aug 13 Javascript
三种带箭头提示框总结实例
Jun 14 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
Dec 27 Javascript
微信小程序-小说阅读小程序实例(demo)
Jan 12 Javascript
JavaScript数组_动力节点Java学院整理
Jun 26 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
May 08 Javascript
vue在自定义组件中使用v-model进行数据绑定的方法
Mar 25 Javascript
vue使用nprogress实现进度条
Dec 09 Javascript
antd form表单数据回显操作
Nov 02 Javascript
javascript利用canvas实现鼠标拖拽功能
Jul 23 #Javascript
JS如何实现封装列表右滑动删除收藏按钮
Jul 23 #Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
Jul 23 #Javascript
JS前后端实现身份证号验证代码解析
Jul 23 #Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
Jul 23 #Javascript
在vue中封装的弹窗组件使用队列模式实现方法
Jul 23 #Javascript
基于JS实现计算24点算法代码实例解析
Jul 23 #Javascript
You might like
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
php5数字型字符串加解密代码
2008/04/24 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
2010/07/04 PHP
允许phpmyadmin空密码登录的配置方法
2011/05/29 PHP
PHP超级全局变量数组小结
2012/10/04 PHP
PHP获取MSN好友列表类的实现代码
2013/06/23 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
2007/04/12 Javascript
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
jquery 抽奖小程序实现代码
2016/10/12 Javascript
js数据类型检测总结
2018/08/05 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
layui 富文本编辑器和textarea值的相互传递方法
2019/09/18 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
2020/08/07 Javascript
[01:15]PWL S2开团时刻第二期——他们杀 我就白给
2020/11/25 DOTA
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
Python调用系统底层API播放wav文件的方法
2017/08/11 Python
Python实现的生成格雷码功能示例
2018/01/24 Python
Python生成器定义与简单用法实例分析
2018/04/30 Python
Python hashlib模块用法实例分析
2018/06/12 Python
设置python3为默认python的方法
2018/10/31 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
Debenhams百货英国官方网站:Debenhams UK
2016/07/12 全球购物
Monnier Frères美国官网:法国知名奢侈品网站
2016/11/22 全球购物
英国领先的奢侈品零售商之一:CRUISE
2016/12/02 全球购物
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
法律系毕业生求职信
2014/05/28 职场文书
2016新党章学习心得体会
2016/01/15 职场文书
高中16字霸气押韵班级口号集锦!
2019/06/27 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript