类似于这样的一个版面,点击标题栏,实现拖拽效果。

添加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实现版面拖拽效果相关推荐

  1. 【加强版】js原生实现拖拽效果,这次没有用document的mousedown、mousemove、mouseup事件我们来点实际的(但是有个弊端:拖拽过程中鼠标会变成一个禁用符号,不太友好)

    <div class='dragged'></div> //初始化需要拖拽的列initDrags() {var arr = document.querySelectorAll( ...

  2. 【墙裂推荐】【原生基础版】js原生实现拖拽效果,注意不要忘了div的cursor用grab和grabbing 还是古法炮制、传统工艺的原生代码兼容性最好,推荐

    以下方式的劣势就是在放弃拖拽那一刻会触发click事件,通常如果被拖拽元素还有其他点击事件,会重复触发,往往并非业务需求.优势就是-额-貌似这段代码没什么屌优势! <div class='dra ...

  3. js控制鼠标移动_原生JS封装可拖拽效果

    项目代码已上传码云:小朋友/JavaScript 封装可拖拽特效 访问该URL可查看效果:http://is666a.gitee.io/javascript_drag/ https://www.zhi ...

  4. js实现图片拖拽效果

    没拖拽之前 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8 ...

  5. js实现鼠标拖拽效果

    初步 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8&q ...

  6. php拖拽原理,JS拖拽效果及原理解析

    这篇文章主要介绍了如何实现js拖拽效果及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 元素拖拽分成3个步骤:按下鼠标,移动鼠标,松开鼠标. ...

  7. html5 原生拖拽,原生JS实现拖拽效果

    这篇文章主要为大家详细介绍了原生JS实现拖拽效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了JS实现拖拽效果的具体代码,供大家参考,具体内容如下 ...

  8. html点击控制盒子左右移动,JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例...

    JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例 发布时间:2020-10-04 12:47:25 来源:脚本之家 阅读:121 作者:s_psycho 本文实例讲述了JS实现鼠标拖拽盒子移动及右键 ...

  9. 盒子拖拽效果,原生js实现

    原生js实现拖拽效果 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

最新文章

  1. 第四周项目三-随机数函数应用于游戏(猜数字游戏)
  2. linux:gpg加密和解密
  3. DLL入门浅析(5)——使用DLL在进程间共享数据
  4. android视图工具,android studio的HierarchyViewer工具如何知道android屏幕的视图属性
  5. JMeter学习(三十一)Access Log Sampler
  6. RatingBar的自定义
  7. 斐波那契数列不用数组_兔子数列——斐波那契数列
  8. Java笔记-非对称加密RSA的使用
  9. python字符子串_子字符串和子序列(Python),子串,python
  10. Spring 阶段总结
  11. python制作个人信息管理系统_python实现简易学生信息管理系统
  12. Spark Streaming处理File Streams
  13. SpringMVC学习笔记(1)-SpringMVC介绍
  14. 这可能是最好的RxJava 2.x 教程(完结版)
  15. 中级通信工程师报名-在线题库-历年真题-模拟试题
  16. 跨期套利策略(附:源码)
  17. Multisim彻底卸载干净方法
  18. 台式电脑主板插线步骤图_图解台式电脑电源与主板对接安装详细过程。
  19. sqli-labs 第八关盲注脚本
  20. 怎么投诉或举报京东第三方商家

热门文章

  1. python人脸识别教程_50行Python代码+OpenCV实现人脸识别!史上最详细的教程!
  2. 基于matlab移位寄存器,基于Matlab产生m序列(DOC X页).doc
  3. java小数丢失精度_Java中的小数运算与精度损失
  4. mysql相互密码_去掉mysql命令行密码不安全的提示
  5. eBPF学习记录(四)使用libbpf开发eBPF程序
  6. 机器学习TP FP FN TN评价指标
  7. 以setuptools版本太高为例,版本太高问题的解决方案
  8. 开发者必备Linux命令
  9. 为了学习Rxjava,年轻小伙竟作出这种事!
  10. oracle的class12驱动没有实现jdbc对clob或blob的存储, 解决办法