概述
近期由于产品快速原型开发的需要,不想用原声的方式开发App两端一起搞时间来不及,目前产品处于大量上feature的阶段,采用混合开发是最合适的选择,所以花了3天的时间研究怎么去实现移动端,拖拽,长按,读取手机相册并做本地预览。
想要实现的效果就是:
- 上传一张图片作为背景图片,能够在图片位置上打点相当于打tag
- 在手机屏幕上长按在事件发生的中心位置创建一个tag
- 这个tag能够响应touch事件实现上下左右位置的移动
核心问题点:
- 手机端的触控实现方案实现,view移动时要动态改变元素的top和left并有回调函数方便接入业务逻辑
- 背景图上tag点位置的存储,动态获取element style 中 top 和 left 值通过记录这两个值实现定位及存
H5拖拽实现方案:draggable 与 touchpunch
由于之前简单了解过一些h5移动端开发和响应式前端的东西, 不算太陌生,我直接搜索了 jquery h5 dragable 结果是找到了jquery的draggable,https://jqueryui.com/draggable 但是这个库的话只支持鼠标事件在pc端ok但是移动端没法用,所以继续搜索在 github 一个问题 draggable don't support mobile 得知 touchpunch http://touchpunch.furf.com/ 这个库实现了鼠标事件到touch事件的适配,可以很好的
在移动端实现拖拽效果
touchpunch 的文档不是很多,只有简单的使用和介绍由于是适配的draggable所以事件和回调参数都是和draggable一样的详细的api文档在这里: