pc端限制拖拽实现

简介: pc端限制拖拽实现

d2ad77a4030b455bbe58fa3fcfd9fd89.png

7469475e8c1345dcb618d810aafb2d78.png

首先要实现拖拽的元素需要设置 绝对定位 如果不会添加多个的情况下 则可以使用relative相对定位 但是还是建议使用absolute 绝对定位


pc端要实现拖拽分为三个事件 分别是mouseDown/mouseMove/mouseUp这三个


我们首先给 要拖拽的元素添加一个mouseDown的监听事件  

f6cc53ad3b704398a17b1edc0525c5ab.png

55a98f08eecd4493b74ff1623a59c123.png

这三个let定义的变量为全局变量为了在后边的move事件中可以使用到down事件修改后的X,Y值


还是一样首先我们在刚点击的时候通过event.pageX和pageY来获取到在刚开始点击时候的鼠标距离页面左上角的X轴和Y轴的左边 然后减去盒子距离左上角X轴和Y轴的左边 得到我们鼠标点击的位置距离盒子左边框和上边框的距离然后赋值给disX和disY

4a1a302daefb4f42a7221455aa56681a.png

当有固定的限制盒子时获取固定的限制盒子的clientWidth和clientHeight 当限制为当前页面可视区宽度时 则获取document.body的clientWidth和clientHeight 然后我们先求出移动距离 因为在down事件中我们已经求出了鼠标点击的位置距离盒子左边框和上边框的距离 所以在这里我们直接用move事件中移动过程中的pageX和pageY 直接减去我们之前赋值好的disX和disY即可 然后通过if判断 设置不能超出限制距离 然后 直接赋值给style的top和left再加上px即可


效果

41d2a0c164db4c7a85f6a2926afe5681.gif

相关文章
|
7月前
|
小程序 定位技术 API
uniapp 开发微信小程序 --【地图】打开地图选择位置,打开地图显示位置(可开启导航)
uniapp 开发微信小程序 --【地图】打开地图选择位置,打开地图显示位置(可开启导航)
854 0
|
JavaScript 前端开发 iOS开发
移动端页面如何优雅的适配各种屏幕,包括PC端
本文为Varlet组件库源码主题阅读系列第八篇,读完本篇,可以了解到移动端页面如何适配各种尺寸的屏幕,包括pc端,另外如何将触摸事件转换成鼠标事件。
468 0
|
小程序
uniapp悬浮图标支持拖动支持微信小程序
uniapp悬浮图标支持拖动支持微信小程序
160 0
|
前端开发 JavaScript Android开发
【前端】IOS微信浏览器点击右上角遮罩实现
现在有一个需求,通过公众号或者链接,下载app应用,大家都知道,安卓和ios下载对应的版本都不一样。并且,ios 微信浏览器不支持应用下载,需要实现一个遮罩功能,提示用户通过浏览器下载,效果如下:
242 0
【前端】IOS微信浏览器点击右上角遮罩实现
|
定位技术 Android开发 数据安全/隐私保护
安卓实现调用三方地图导航
安卓实现调用三方地图导航
599 0
安卓实现调用三方地图导航
|
Android开发
安卓打开本应用的应用信息界面的代码
安卓打开本应用的应用信息界面的代码
117 0
|
定位技术 Android开发
安卓百度地图点击回到当前位置
安卓百度地图点击回到当前位置
287 0
|
XML Android开发 数据格式
关于安卓自定义地址选择控件的实现
安卓自定义地址选择控件
179 0
关于安卓自定义地址选择控件的实现