前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2.2 progress简介:如何实现一个环形进度条?

2.2 progress简介:如何实现一个环形进度条?

作者头像
LIYI
发布2020-05-22 18:32:11
1.2K0
发布2020-05-22 18:32:11
举报
文章被收录于专栏:艺述论专栏艺述论专栏

在前端网络操作是异步的,一般都需要一个进度条。在很多应用中,我们经常可以看到环形进度条,但是小程序原生的 progress 组件,是一个从左到右的方形进度条,那么我们可不可以自实现一个环形的进度条呢?

答案肯定是可以的。从原理上来讲,只要我们能够获知网络异步操作的进度,以及绘制出环形动画效果,就可以实现了。

先看一下原生的组件。

在这个代码中,show-info 代表是否在进度条右侧显示百分比文本。一般不需要显示,因为进度条本身就标明了进度。bindtap 用于绑定 tap 事件,所有可视的 view 组件都可以绑定 tap 事件,即使属性列表中没有显式标明。stroke-width 表示进度条的宽度,这是从前进方向来看是宽度,从表象看实则是高度。这个定义与 css 中的 stroke-width 类似。percent 是百分比,在 0~100 之间。active-mode 是动画停止后重新启动的模式,有两个值:backwards, 表示动画从头播;forwards,表示动画从上次结束的位置继续播放,它的默认值是 backwards,但在实践中我们一般使用 forwards。active 表示是否展示动画,与 show-info 一样,布尔属性为真,只需要列上属性就可以了。如果想显式设置为 false,需要写成 active="{{false}}"这样的形式。bindactiveend 用于绑定动画结束的事件,在动画结束时触发。

这里有两个颜色属性需要注意:activeColor 与 backgroundColor。默认情况下,activeColor 是十六进制“#09BB07”,backgroundColor 是十六进制“#EBEBEB”。小程序框架给了开发者修改的自由,但是这个颜色并不能随便使用。程序中的设计风格要保持一致性,这就涉及到应用程序的设计规范问题。

上面的网址,是微信设计规范网址。从上面的颜色规范中,可以看到#09bb07 是默认的 activeColor 颜色。第一个#09bb07 是完成色,第二个#353535 称之为 Semi,大段说明内容而且属于主要内容的,例如正文,使用这个颜色。第三个#888888,称之为 Grey,用于次要内容。第四个是链接色,第五个是警告色。

纯黑色 Black,一般用于主内容。浅灰色 Light,一般用于时间戳与表单的缺省值。

backgroundColor 默认的颜色值#EBEBEB,不在上面的列表之内。在 weui 组件库内,默认按钮的底色是#f2f2f2,这个颜色值和#ebebeb 是很接近的。在使用的时候我们要统一使用一致的颜色,表示相同的含义,在这里我们将 backgroundColor 设置为#f2f2f2。

介绍完组件的属性,接下来我们看开发中经常会遇到哪些问题。

有人在开发者社区问到这个问题,他想实现一个下载文件时显示动态进度条的功能,但看了文档后,发现 percent 这个属性必须设置固定的值,例如 80,但进度是一直变化的,该如何实现动态进度条呢?

我们前面的示例代码基本就可以这个满足需求了。当启用 active、并将 active-mode 设置为 forwards 后,动画就会随下载进度动起来。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 艺述论 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档