微信小程序movable-view组件缩放中心的问题

微信小程序movable-view组件缩放中心的问题,第1张

微信小程序遇到需要制作根据屏幕中心点缩放组件

问题:movable-view组件的缩放是根据movable-view的中心点缩放的,导致体验差

解决方法:

    1,使用两个movable-view嵌套起来使用

    2,外层进行缩放,里层进行移动;外层要比里层大(缩放的倍数)

    3,将外层的中心使用定位到屏幕的中心,是缩放只显示在中心缩放

    4,将里层的定位到屏幕中显示

可以通过上传两个图片,一个是可以定制的T恤/背包等背景图,一个是定制的logo图片。让用户可以可以拖动logo图片放置在背景图上粗略实现DIY的预览效果。具体要求:可手势放大/缩小,可面板 *** 作切换图片,可面板 *** 作放大缩小对应的图片,可本地选择图片。

原生容器组件的 movable-area | 微信开放文档 (qq.com) 已经内部实现了拖动和放大缩小,我们只需要理顺组件交互的思路以及注意事项,主要有以下:

1.movable-view必须为movable-area的子级元素。

2.两个movable-view不能同时设为可手势放大/缩小,存在冲突,因此需要在点击/拖动图片,还有点击下方tab切换背景图/logo时控制相应的movable-view是否可手势缩放。

3.点击或拖动logo/背景图片时候,与下方的 *** 作面板的tab元素互动,因此需要监听touchstart事件。

4.点击/拖动logo时候,需要显示图片边框,在拖动结束的时候边框消失,显得更用户友好,因此需要在touchstart和touchend中做处理。

5.手势放大/缩小时,需要同步下方 *** 作面板的放大倍数,因此需要绑定scale的值(movable-view提供)。

6.(重点)手势放大缩小事件是一种resize事件,如果每次resize都要更新一次面板计步器的话是十分浪费资源的,因此需要进行函数防抖(debounce),当触发时,如果规定时间间隔:500ms(个人设置的值)内再次触发resize事件,则把时间间隔更新,只有在最后一次resize事件执行后且500ms内没有再次触发resize事件,才进行计步器值的更新,具体防抖的原理和应用可以自行搜索。

1.增加保存功能,对完成的图片进行保存。

2.增加旋转功能


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11898443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存