拖动事件的实现 js
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> #box{ height: 300px; width: 300px; background-color: aqua; position: absolute; left: 100px; top: 50px; } </style> </head> <body style="position: relative;height: 100%;"> <div id="box"></div> <script> let box = document.querySelector('#box') //拿到box元素 box.onmousedown = function(e){ //鼠标按下事件 console.log(e.pageX) //pageX是整个页面的点击的地方 console.log(e.target.offsetLeft)//offsetLeft 相对于当前div的左边或者上边的偏移量 let x = e.pageX - e.target.offsetLeft //获取div中点击的地方(左边) let y = e.pageY - e.target.offsetTop //获取div中点击的地方(顶部) box.onmousemove =function(e){ //鼠标移动事件 console.log(111,e.pageX,e.pageY) box.style.left = e.pageX - x+'px' //div的最左边位置 只要移动就获取最新的位置 赋值给left box.style.top = e.pageY - y+'px' //div的最顶部位置 只要移动就获取最新的位置 赋值给top } box.onmouseup = function(){//鼠标松开 删除移动事件 this.onmousemove = null } console.log(x,y) } </script> </body> </html>
可随意拖动
思路: 鼠标按下事件里加入 鼠标移动事件 可实现
先获取div中点击的位置的值(div左边到点击的值 或者 顶部到点击位置的值) 然后鼠标移动 就用pageX减去这个值 就是当前的left了 然后给div的left赋值就可以了
分类:
javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
2019-07-05 引用传值的总结
2019-07-05 php的值传递