微信小程序基于movable-area实现DIY T恤logo定制

微信小程序基于movable-area实现DIY T恤logo定制,第1张

可以通过上传两个图片,一个是可以定制的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.增加旋转功能

日常记录学习~~

参数参考官方文档: https://developers.weixin.qq.com/miniprogram/dev/component/cover-image.html

cover-image:覆盖在原生组件之上的图片视图,支持嵌套在 cover-view 里

cover-view:覆盖在原生组件之上的文本视图,支持嵌套 cover-view 、 cover-image ,可在 cover-view 中使用 button

原生组件有:map,video,canvas,camera,live-player,live-pusher

参数参考官方文档: https://developers.weixin.qq.com/miniprogram/dev/component/match-media.html

match-media:media query 匹配检测节点,指定一组 media query 规则,满足时,这个节点才会被展示。

参数参考官方文档: https://developers.weixin.qq.com/miniprogram/dev/component/movable-area.html

movable-area:是movable-view的可移动区域,必须设置width和height属性,不设置默认为10px

movable-view:可移动的视图容器,在页面中可以拖拽滑动,movable-view必须在movable-area组件中使用,并且必须是直接子节点,否则不能移动。

参数参考官方文档: https://developers.weixin.qq.com/miniprogram/dev/component/page-container.html

page-container:“假页”容器组件,效果类似于 popup d出层,页面内存在该容器时,当用户进行返回 *** 作,关闭该容器不关闭页面,当前页面最多只有 1 个容器,若已存在容器的情况下,无法增加新的容器

参数参考官方文档:

https://developers.weixin.qq.com/miniprogram/dev/component/scroll-view.html

scroll-view:可滚动视图区域,使用竖向滚动时,需要给一个固定高度,组件属性的长度单位默认为px

参数参考官方文档:

https://developers.weixin.qq.com/miniprogram/dev/component/share-element.html

具体使用可看官方案例哦

share-element:共享元素,该组件需与page-container组件结合使用

swiper:滑块视图容器,其中只可放置swiper-item组件,否则会导致未定义的行为。

swiper-item:仅可放置在swiper组件中,宽高自动设置为100%

这是我们最熟悉的容器啦~

首先上图看下效果:

大家仔细去看看 官网的文档 后再来看我写的这篇文章可能会更好理解。

(1) movable-area 这个就是定义了一个移动的区域,跟普通的 <view></view>的含义是一样的,不同在于,接着往下看;

(2) movable-view 这个就是一个可移动的视图容器,可以在页面中拖拽滑动。

OK,这就是关于movable-area组件的一些基本概念的介绍,接下来我们实践实践。

(1)这是我们html基本页面结构,我主要来解释一下 movable-view 的属性起到了一些什么作用。

(2)然后我们定义一下css样式,这里大家应该能看得懂,我就不多说了:

主要请仔细看看容器的 宽度 ,后面我们设置 movable-view 的 x属性 的时候是根据样式的宽度来处理的。

这样,我们的页面基本结构就实现了,到这里,我们还有这么几个问题需要解决完善:

我们下章再讲。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存