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 相关文章推荐
菜鸟学习JavaScript小实验之函数引用
Nov 17 Javascript
js 处理数组重复元素示例代码
Dec 27 Javascript
Jquery 点击按钮自动高亮实现原理及代码
Apr 25 Javascript
jQuery遍历对象、数组、集合实例
Nov 08 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
Mar 11 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
Oct 21 Javascript
jQuery实现简单的回到顶部totop功能示例
Oct 16 jQuery
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
Dec 01 Javascript
React组件中的this的具体使用
Feb 28 Javascript
关于vue的语法规则检测报错问题的解决
May 21 Javascript
Vue项目中使用flow做类型检测的方法
Mar 18 Javascript
Vue 修改网站图标的方法
Dec 31 Vue.js
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
发挥语言的威力--融合PHP与ASP
2006/10/09 PHP
php mysql数据库操作类
2008/06/04 PHP
php构造函数的继承方法
2015/02/09 PHP
浅谈本地WAMP环境的搭建
2015/05/13 PHP
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
2010/05/18 Javascript
强大的jquery插件jqeuryUI做网页对话框效果!简单
2011/04/14 Javascript
jquery 插件学习(四)
2012/08/06 Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
2013/11/13 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
基于jQuery实现左右图片轮播(原理通用)
2015/12/24 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
node结合swig渲染摸板的方法
2018/04/11 Javascript
深入理解react-router 路由的实现原理
2018/09/26 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
Vue源码分析之Vue实例初始化详解
2019/08/25 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
[01:07:02]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第三场 2月26日
2021/03/11 DOTA
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
Python反射的用法实例分析
2018/02/11 Python
在pycharm中设置显示行数的方法
2019/01/16 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
wxpython绘制音频效果
2019/11/18 Python
python3 xpath和requests应用详解
2020/03/06 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
ajax是什么及其工作原理
2012/02/08 面试题
Lucene推荐的分页方式是什么?
2015/12/07 面试题
大学生党课思想汇报
2013/12/29 职场文书
培训楼经理岗位责任制
2014/02/10 职场文书
《雨点》教学反思
2014/02/12 职场文书
大学毕业感言200字
2014/03/09 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
介绍信格式样本
2015/05/05 职场文书
Python基础之Socket通信原理
2021/04/22 Python
python ConfigParser库的使用及遇到的坑
2022/02/12 Python