uView版本:2.0.34
在进度条比较短,进度又比较小时,就有有只显示一个百分号,甚至百分号都不显示的情况,如图
以下是我的解决办法:
布局:
<u-line-progress ref="progressBar" :percentage="10">u-line-progress>
1、获取progress的宽度
uView中的LineProgress有个getProgressWidth方法,在promise中可获取整个进度条的宽度,接下来就是稍微改造标签即可
- getProgressBarWidth() {
- return new Promise(resolve => {
- this.$refs.progressBar.getProgressWidth().then(res => {
- this.progressBarWidth = res.width
- resolve()
- })
- })
- }
2、修改标签
- <u-line-progress ref="progressBar" :percentage="your-progress">
- <text style="position: absolute"
- :style="{left: `${(progressBarWidth / 2 - 9)}px`,
- color: parseInt(your-progress) > 58 ? '#FFFFFF' : '#333333'}">
- {{ your-progress }}%
- text>
- u-line-progress>
就这么简单。至于具体需要键多少才居中,需要自己调整;以及百分比到达多少切换颜色,也可以自己调整。
以下是效果图