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 遍历json数组的实现代码
Sep 22 Javascript
纯js写的分页表格数据为json串
Feb 18 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
Aug 20 Javascript
javascript绘制漂亮的心型线效果完整实例
Feb 02 Javascript
JavaScript定义全局对象的方法示例
Jan 12 Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
Jan 03 Javascript
ES6 如何改变JS内置行为的代理与反射
Feb 11 Javascript
mpvue全局引入sass文件的方法步骤
Mar 06 Javascript
JavaScript中的相等操作符使用详解
Dec 21 Javascript
原生JavaScript之es6中Class的用法分析
Feb 23 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
Apr 30 Javascript
vue 函数调用加括号与不加括号的区别
Oct 29 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
ezSQL PHP数据库操作类库
2010/05/16 PHP
thinkPHP删除前弹出确认框的简单实现方法
2016/05/16 PHP
thinkPHP基于ajax实现的菜单与分页示例
2016/07/12 PHP
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
七个不允许错过的jQuery小技巧
2015/12/21 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
vue 自动化路由实现代码
2019/09/03 Javascript
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
python进阶教程之词典、字典、dict
2014/08/29 Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
python爬虫之自制英汉字典
2019/06/24 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
Python3将数据保存为txt文件的方法
2019/09/12 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
python enumerate内置函数用法总结
2020/01/07 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
详解Python模块化编程与装饰器
2021/01/16 Python
CSS3 边框效果
2019/11/04 HTML / CSS
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
益模软件Java笔试题
2012/03/27 面试题
请写出 float x 与"零值"比较的 if 语句
2016/01/04 面试题
环保专业大学生职业规划设计
2014/01/10 职场文书
挂科检讨书范文
2014/02/20 职场文书
新学期教师寄语
2014/04/02 职场文书
警校毕业生自我评价
2014/04/06 职场文书
初中生期末评语大全
2014/04/24 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
依法行政工作汇报
2014/10/28 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
欠款纠纷起诉状
2015/05/19 职场文书
干部培训工作总结2015
2015/05/25 职场文书
mysql 联合索引生效的条件及索引失效的条件
2021/11/20 MySQL