用JS实现版面拖拽效果
类似于这样的一个版面,点击标题栏,实现拖拽效果。
添加onmousedown事件
通过获取鼠标的坐标(clientX,clientY)来改变面板的位置
注意:面板使用绝对定位方式,是以左上角为参考点,所以我们还需要获取鼠标在面板的位置,也就是以鼠标所在位置为参考点。
// 光标按下时光标和面板之间的距离disX=event.clientX-oDrag.offsetLeft,disY=event.clientY-oDrag.offsetTop;
添加onmousemove事件
在获取了鼠标相对于面板的位置后,设置面板的left,和top为鼠标坐标与对应这个值之差即可。
// 计算位置并设置l=event.clientX-disX;t=event.clientY-disY;oDrag.style.left=l+"px";oDrag.style.top=t+"px";
思考?能不能直接把letf和top的值设置为面板的offsetLeft和offsetTop属性,在数学表达式中值是相等的。
不能,整个过程需要分为这两个步骤!!!
添加 onmouseup事件
// 释放鼠标document.οnmοuseup=function(){document.onmousemove=null;document.onmouseup=null;}
转载于:https://www.cnblogs.com/hkie/p/6006130.html
用JS实现版面拖拽效果相关推荐
- 【加强版】js原生实现拖拽效果,这次没有用document的mousedown、mousemove、mouseup事件我们来点实际的(但是有个弊端:拖拽过程中鼠标会变成一个禁用符号,不太友好)
<div class='dragged'></div> //初始化需要拖拽的列initDrags() {var arr = document.querySelectorAll( ...
- 【墙裂推荐】【原生基础版】js原生实现拖拽效果,注意不要忘了div的cursor用grab和grabbing 还是古法炮制、传统工艺的原生代码兼容性最好,推荐
以下方式的劣势就是在放弃拖拽那一刻会触发click事件,通常如果被拖拽元素还有其他点击事件,会重复触发,往往并非业务需求.优势就是-额-貌似这段代码没什么屌优势! <div class='dra ...
- js控制鼠标移动_原生JS封装可拖拽效果
项目代码已上传码云:小朋友/JavaScript 封装可拖拽特效 访问该URL可查看效果:http://is666a.gitee.io/javascript_drag/ https://www.zhi ...
- js实现图片拖拽效果
没拖拽之前 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8 ...
- js实现鼠标拖拽效果
初步 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8&q ...
- php拖拽原理,JS拖拽效果及原理解析
这篇文章主要介绍了如何实现js拖拽效果及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 元素拖拽分成3个步骤:按下鼠标,移动鼠标,松开鼠标. ...
- html5 原生拖拽,原生JS实现拖拽效果
这篇文章主要为大家详细介绍了原生JS实现拖拽效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了JS实现拖拽效果的具体代码,供大家参考,具体内容如下 ...
- html点击控制盒子左右移动,JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例...
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例 发布时间:2020-10-04 12:47:25 来源:脚本之家 阅读:121 作者:s_psycho 本文实例讲述了JS实现鼠标拖拽盒子移动及右键 ...
- 盒子拖拽效果,原生js实现
原生js实现拖拽效果 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...
最新文章
- 第四周项目三-随机数函数应用于游戏(猜数字游戏)
- linux:gpg加密和解密
- DLL入门浅析(5)——使用DLL在进程间共享数据
- android视图工具,android studio的HierarchyViewer工具如何知道android屏幕的视图属性
- JMeter学习(三十一)Access Log Sampler
- RatingBar的自定义
- 斐波那契数列不用数组_兔子数列——斐波那契数列
- Java笔记-非对称加密RSA的使用
- python字符子串_子字符串和子序列(Python),子串,python
- Spring 阶段总结
- python制作个人信息管理系统_python实现简易学生信息管理系统
- Spark Streaming处理File Streams
- SpringMVC学习笔记(1)-SpringMVC介绍
- 这可能是最好的RxJava 2.x 教程(完结版)
- 中级通信工程师报名-在线题库-历年真题-模拟试题
- 跨期套利策略(附:源码)
- Multisim彻底卸载干净方法
- 台式电脑主板插线步骤图_图解台式电脑电源与主板对接安装详细过程。
- sqli-labs 第八关盲注脚本
- 怎么投诉或举报京东第三方商家
热门文章
- python人脸识别教程_50行Python代码+OpenCV实现人脸识别!史上最详细的教程!
- 基于matlab移位寄存器,基于Matlab产生m序列(DOC X页).doc
- java小数丢失精度_Java中的小数运算与精度损失
- mysql相互密码_去掉mysql命令行密码不安全的提示
- eBPF学习记录(四)使用libbpf开发eBPF程序
- 机器学习TP FP FN TN评价指标
- 以setuptools版本太高为例,版本太高问题的解决方案
- 开发者必备Linux命令
- 为了学习Rxjava,年轻小伙竟作出这种事!
- oracle的class12驱动没有实现jdbc对clob或blob的存储, 解决办法