首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

uniapp实现小程序页面自由拖拽组件

先看实现效果: 实现过程 根据查阅文档,要实现拖拽功能,大概有三种方式: 1.给需要实现拖拽的元素监听catchtouchmove事件,动态修改样式坐标 这种方式最容易想到,通过js监听触摸位置动态修改元素坐标...根据组件定义,可以想到它的使用场景大概是在页面局部区域内对一些元素拖拽缩放,这个与我们想要的在整个页面进行自由拖拽的需求不符。...代码实现 我们使用的是uniapp框架,查阅uniapp文档,官方直接提供了一个自由拖拽的代码案例,链接点击这里。...我们要拖拽的是一个canvas元素,用到了lottie动画库,点击时会播放动画。 如果你要实现页面拖拽的只是一个简单的按钮,那代码量会少很多。...这里要提到的是,wxs中不允许直接调用微信的api(wx.开头),这就涉及到页面或组件js与wxs代码通信传值的问题。

91920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JS中鼠标拖拽div(2)(setCapture()方法和releaseCapture()方法)

    接着鼠标拖拽div(1)解决问题,当在拖拽事件所在的页面按下键盘的ctrl+A全选后,再去拖拽div,浏览器会默认去搜索网页中的内容,拖拽功能就会失效,(搜索网页内容是浏览器的默认行为,所以要想不发生这种情况...可以将setCapture()方法用到鼠标拖拽div的例子中,但是注意,在给mousedown事件中,调用的box的**setCapture()方法之后,会有一个问题,就是当鼠标松开之后,事件还会一直被捕获...,网页中的其他选项都无法点击,而且就算鼠标松开,div也还会跟着鼠标对应的位置移动,为了解决这个问题,就需要在鼠标松开的时候取消捕获,可以使用releaseCapture()**方法来取消先前调用的捕获方法...优化拖拽代码 在之前拖拽div的代码中,如果要拖拽多个内容,就需要重新为一个内容绑定事件,所有的操作都要重新写一遍,所以对之前的代码进行了优化: 定义函数,将拖拽的方法封装起来,方便调用,要拖拽哪个元素...id="box"> 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/

    2.4K20

    手写实战应用:Vue拖拽插件的应用与选择

    大家好,我是程序视点的小二哥 因为项目上有一个在规定区域内自由拖拽的小需求,自己纯js写又有点小麻烦,就花了点时间寻找到这个小组件。...:z="1"         :x="10"          :y="10"     >     //图片,div或其他元素        ...限制拖拽范围如果不设置拖拽范围,可以在整个页面进行拖拽 图片可以使用parent-limitation限制只在父元素内拖动也可以手动设置拖拽范围的宽高parentW,parentH//指定只在父元素内拖动... 图片//自由设置拖动范围 图片为什么要选择手写鞋子合不合适只有穿过才知道,轮子能不能用,只有暴露出问题才知道因为我们的项目不仅仅是用在电脑上的,电子白板上也会跑,于是就产生了适配的问题,在不同设备上有可能会造成位置错乱

    40130

    基于Vue的拖拽插件的实战应用,但最后我还是选择了手写

    大家好,我是前端实验室的大师兄 因为项目上有一个在规定区域内自由拖拽的小需求,自己纯js写又有点小麻烦,就花了点时间寻找到这个小组件。...、拖拽的范围是否超出其父元素;并且支持触摸事件 安装 npm i -s vue-drag-resize ‍引入 <VueDragResize...限制拖拽范围 如果不设置拖拽范围,可以在整个页面进行拖拽 可以使用parent-limitation限制只在父元素内拖动 也可以手动设置拖拽范围的宽高parentW,parentH //指定只在父元素内拖动... //自由设置拖动范围 <vue-drag-resize :parentW="2000" :parentH...style> 为什么要选择手写 鞋子合不合适只有穿过才知道,轮子能不能用,只有暴露出问题才知道 因为我们的项目不仅仅是用在电脑上的,电子白板上也会跑,于是就产生了适配的问题,在不同设备上有可能会造成位置错乱

    1.7K60

    轻松教你搞定组件的拖拽, 缩放, 多控制点伸缩和拖拽数据上报

    页面实时预览编译技术 自定义组件和自定义模版方案 多人协作的可视化搭建模式实现 还有很多技术细节这里不一一举例了, 最近在研究自由布局时发现有这样一个需求, 我们可以自由拖拽和缩放组件, 并能从组件的不同纬度拖拽...我们从可视化搭建平台的实际业务出发, 可以分析出拖拽缩放有如下几个功能点: 自由拖拽 支持控制点, 多方位缩放 支持自由控制层级 支持组件静态化(即为了实现固定, 预览页面等效果) 拖拽缩放的数据能回传给上层组件并提供受控机制...解决可视化搭建平台页面层级的问题 目前在 h5-dooring 是通过横向扩展来解决组件层级和嵌套的问题, 如果我们采用自由拖拽布局, 层级和嵌套的问题就很好解决了....另一个场景是我们要实现公共的页面渲染器, 在编辑状态下可以自由拖动缩放, 但是在预览状态下需要让元素固定, 不能出现自有拖拽等功能, 类似 h5-dooring 那种模式, 这个时候我们需要让拖拽组件@...> } 实现组件数据上报 我们都知道组件单纯只有拖拽缩放能力远远不能满足业务需求, 对于可视化拖拽组件, 更重要的是要能保留拖拽后的数据, 比如宽高,位置,层级等数据, 所以我们需要监控几个事件, 并将数据传给对应的事件来让外层能监听和获取

    1.1K20

    Fabric.js 拖放元素进画布

    效果如下图所示: 思路 要实现以上效果,需要考虑以下几点: 元素有拖拽功能。 能在画布中生成对应的元素。 画布有可能缩放。 画布有可能移动。 画布的位置可能在页面的某处。...在3和4情况下还能在准确的位置生成元素。 基于以上几点,我得出以下解法。 解1:要让 HTML 元素具备拖拽功能,只要将 draggable 属性设置为 true 即可。...解4:移动画布我在 《Fabric.js 拖拽平移画布》 里讲解过。 解5:画布的左上角不一定在body的左上角,也就是鼠标当前位置可能和画布对应的坐标不一样,需要通过加减法计算一下。...这里的坐标是指画布在页面中的位置转换出来的坐标,而且还要计算画布拖拽和缩放过的情况。...⭐ Fabric.js 拖拽创建元素

    3.2K30
    领券