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 实现父窗口引用弹出窗口的值的脚本
Aug 07 Javascript
Node.js生成HttpStatusCode辅助类发布到npm
Apr 09 Javascript
jquery获得页面元素的坐标值实现思路及代码
Apr 15 Javascript
jquery实现metro效果示例代码
Sep 06 Javascript
javascript自启动函数的问题探讨
Oct 05 Javascript
JavaScript获取table中某一列的值的方法
May 06 Javascript
AngularJs 60分钟入门基础教程
Apr 03 Javascript
jQuery图片轮播插件——前端开发必看
May 31 Javascript
值得收藏的vuejs安装教程
Nov 21 Javascript
在vue项目中使用sass的配置方法
Mar 20 Javascript
layui table设置前台过滤转义等方法
Aug 17 Javascript
JavaScript async/await原理及实例解析
Dec 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
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
$.ajax返回的JSON无法执行success的解决方法
2011/09/09 Javascript
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
jquery实现的网页自动播放声音
2014/04/30 Javascript
JS实现很酷的EMAIL地址添加功能实例
2015/02/28 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
react+redux的升级版todoList的实现
2017/12/18 Javascript
详解使用React进行组件库开发
2018/02/06 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
理解Python中的With语句
2016/03/18 Python
python中map()函数的使用方法示例
2017/09/29 Python
解决python读取几千万行的大表内存问题
2018/06/26 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
Python基于内置库pytesseract实现图片验证码识别功能
2020/02/24 Python
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
New Balance加拿大官方网站:运动鞋和健身服装
2018/11/19 全球购物
医生实习工作总结的自我评价
2013/09/27 职场文书
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
珍惜水资源建议书
2014/03/12 职场文书
元旦促销方案
2014/03/15 职场文书
学生穿着不得体检讨书
2014/10/12 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
父亲节感言
2015/08/03 职场文书
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL