当前位置: 首页 > news >正文

HTML拖拽

拖拽的流程:鼠标按下(mousedown)→鼠标移动(mousemove)→鼠标松开(moveup)

需要理解的几个api:

  • clientX/clientY: 相对于浏览器视窗内的位置坐标(不包括浏览器收藏夹和顶部网址部分)
  • pageX/pageY: 该属性会考虑滚动,如果鼠标相对浏览器左边距离为100px,并向左滚动了200px,则pageX返回300px
  • screenX/screenY:相对于屏幕的距离
  • offsetLeft/offsetTop: 当前元素距离父辈元素的距离

具体实现:

et box  = document.getElementById('box1')box.onmousedown = (e) =>{//获取鼠标在移动元素上的位置let x = e.clientX - box.offsetLeftlet y = e.clientY - box.offsetTopdocument.onmousemove = (event) => {let left = event.clientX - x  //当前元素左边界距离当前视窗的位置let top = event.clientY - y //当前元素上边界距离当前视窗的位置box.style.left = left + 'px'box.style.top = top + 'px'}document.onmouseup = () => {document.onmousemove = nulldocument.onmouseup = null}}
http://www.lryc.cn/news/106151.html

相关文章:

  • 【vue】 vue2 监听滚动条滚动事件
  • k8s目录
  • 设计模式行为型——解释器模式
  • 使用 Webpack 优化前端开发流程
  • mysql的分库分表脚本
  • JavaEE初阶之文件操作 —— IO
  • 客户端代码 VS 服务端代码 简述
  • 【娱乐圈明星知识图谱2】信息抽取
  • C++ rand的用法
  • element时间选择器的默认值
  • fiddler过滤器
  • 面试必考精华版Leetcode2130.链表最大孪生和
  • qemu kvm 新建虚拟机
  • Charles抓包工具使用(一)(macOS)
  • 2023年8月美团外卖3-18元红包优惠券天天领取活动日历及美团外卖红包领取使用
  • 深度学习各层负责什么内容?
  • 【硬件设计】模拟电子基础二--放大电路
  • 基于应用值迭代的马尔可夫决策过程(MDP)的策略的机器人研究(Matlab代码实现)
  • 控件旋转90度,并跟随大小缩放
  • 软件外包开发的PHP开发框架
  • D2L学习记录-10-词嵌入word2vec
  • 海外独立站怎么搭建?7个海外独立站搭建指南
  • flask中实现restful-api
  • Centos7 安装man中文版手册
  • untiy代码打压缩包,可设置密码
  • 【iOS】—— UIKit相关问题
  • Linux系统防火墙Firewalld
  • STM3232 GPIO的配置寄存器(为了移植IIC)
  • K8s的详细介绍
  • JavaWeb(8)——前端综合案例2(节流和防抖)