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月前
|
JavaScript
技术心得:根据不同访问设备跳转到PC页面或手机页面
技术心得:根据不同访问设备跳转到PC页面或手机页面
82 0
|
JavaScript 前端开发 iOS开发
移动端页面如何优雅的适配各种屏幕,包括PC端
本文为Varlet组件库源码主题阅读系列第八篇,读完本篇,可以了解到移动端页面如何适配各种尺寸的屏幕,包括pc端,另外如何将触摸事件转换成鼠标事件。
461 0
HMI-50-【多媒体】菜单导航界面实现
今天是清明小长假的第二天,我们来实现以下菜单。因为咱们这个是纯粹使用二维来凑三维,所以效果肯定是有点拉胯的,各位看官留情。
|
小程序 JavaScript 容器
小程序封装拖拽菜单组件(uniapp拖拽排序,自定义菜单)
movable-area 是 uniapp 的可移动区域组件。它用于定义可移动视图容器,在其内部可拖拽移动子视图。
647 0
|
iOS开发
iOS 左滑编辑、长按拖动排序
iOS 左滑编辑、长按拖动排序
|
XML Android开发 数据格式
关于安卓自定义地址选择控件的实现
安卓自定义地址选择控件
172 0
关于安卓自定义地址选择控件的实现
|
移动开发 自然语言处理 数据可视化
从零搭建一款PC页面编辑器PC-Dooring
没有太多时间做PC端搭建化项目, 好在搭建平台很多原理都是通用的, 所以早在去年我就开发好了面向PC端的编辑器PC-Dooring, 虽然在设计上还有些不足(在后面的内容中会提到) , 但是基本模型已经实现, 接下来就和大家一起分享一下具体的实现.
576 0
|
编解码 JavaScript 前端开发
如何判断是pc端还是移动端
如何判断是pc端还是移动端
1527 0
|
Android开发
Fragment实现微信Tab界面(不可通过界面左右拖动切换界面,只可以由按钮切换)
Fragment实现微信Tab界面(不可通过界面左右拖动切换界面,只可以由按钮切换)
3196 0

热门文章

最新文章