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.Validate验证库知识点的详解
Apr 26 Javascript
Javascript表格翻页效果实现思路及代码
Aug 23 Javascript
JS仿百度搜索自动提示框匹配查询功能
Nov 21 Javascript
用队列模拟jquery的动画算法实例
Jan 20 Javascript
js 创建对象 经典模式全面了解
Aug 16 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
Aug 16 Javascript
jquery-mobile基础属性与用法详解
Nov 23 Javascript
js原生日历的实例(推荐)
Oct 31 Javascript
JS实现百度网盘任意文件强制下载功能
Aug 31 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
Oct 09 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
Aug 27 Javascript
详谈vue中router-link和传统a链接的区别
Jul 22 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
日本十大科幻动漫 宇宙骑士垫底,第一已成经典
2020/03/04 日漫
PHP 万年历实现代码
2012/10/18 PHP
让whoops帮我们告别ThinkPHP6的异常页面
2020/03/02 PHP
文本链接逐个出现的js脚本
2007/12/12 Javascript
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
2017/06/13 Javascript
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
JavaScript使用小插件实现倒计时的方法讲解
2019/03/11 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
django 自定义用户user模型的三种方法
2014/11/18 Python
Python字符串处理实例详解
2017/05/18 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
纯python进行矩阵的相乘运算的方法示例
2019/07/17 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
使用keras2.0 将Merge层改为函数式
2020/05/23 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
Python Http请求json解析库用法解析
2020/11/28 Python
SOKOLOV官网:俄罗斯珠宝首饰品牌
2021/01/02 全球购物
一个SQL面试题
2014/08/21 面试题
大专自我鉴定范文
2013/10/01 职场文书
大学三年的自我评价
2013/12/25 职场文书
医药营销个人求职信范文
2014/02/07 职场文书
函授药学自我鉴定
2014/02/07 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
2019大学生实习报告
2019/06/21 职场文书
教你用Python+selenium搭建自动化测试环境
2021/06/18 Python
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python