问题: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.增加旋转功能
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)