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 相关文章推荐
JS实现仿百度输入框自动匹配功能的示例代码
Feb 19 Javascript
jquery 判断滚动条到达了底部和顶端的方法
Apr 02 Javascript
JavaScript闭包函数访问外部变量的方法
Aug 27 Javascript
js使用for循环与innerHTML获取选中tr下td值
Sep 26 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
Apr 08 Javascript
vuex实现及简略解析(小结)
Mar 01 Javascript
微信小程序云开发实现增删改查功能
May 17 Javascript
详解基于Wepy开发小程序插件(推荐)
Aug 01 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
Oct 25 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
Apr 07 Javascript
vue内置组件component--通过is属性动态渲染组件操作
Jul 28 Javascript
js 数组 fill() 填充方法
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
php读取mysql的简单实例
2014/01/15 PHP
PHP实现股票趋势图和柱形图
2015/02/07 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
PHPStorm+XDebug进行调试图文教程
2016/06/13 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
php上传图片并给图片打上透明水印的代码
2010/06/07 Javascript
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
vsCode安装使用教程和插件安装方法
2020/08/24 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
Vue 用Vant实现时间选择器的示例代码
2019/10/25 Javascript
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
Python Web框架Flask下网站开发入门实例
2015/02/08 Python
Python实现感知机(PLA)算法
2017/12/20 Python
python实现简易内存监控
2018/06/21 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
Python OpenCV调用摄像头检测人脸并截图
2020/08/20 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
Python如何计算语句执行时间
2019/11/22 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
Trina Turk官网:美国时装和泳装品牌
2018/06/10 全球购物
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
学雷锋标兵事迹材料
2014/08/18 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android