CountTo 数字滚动

该组件一般用于需要滚动数字到某一个值的场景,目标要求是一个递增的值。

注意

如果给组件的父元素设置text-align: center想让数字水平居中,可能是由于元素内容快速变化而导致渲染的问题,在APP上组件可能会有轻微的左右抖动现象, 解决办法是给父元素设置padding-left或者margin-left即可。

平台差异说明

AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序

基本使用

通过start-val设置开始值,end-val设置结束值

  1. <u-count-to :start-val="30" :end-val="500"></u-count-to>

设置滚动相关参数

  • 通过duration设置从开始值到结束值整个滚动过程所需的时间,单位ms
  • 通过use-easing设置滚动快结尾的时候,是否放慢滚动的速度,给用户更好的视觉效果
  1. <u-count-to :start-val="30" :end-val="500" :duration="2000" :use-easing="false"></u-count-to>

是否显示小数位

通过decimals设置显示的小数位,如果设置了,在滚动过程中,小数位会一起变化。如果start-valend-val是带小数的,应该设置decimalsstart-valend-val一样的小数位数值,如end-val为1200.55,那么decimals应该设置为2。

  1. <u-count-to :start-val="30" :end-val="500.55" :decimals="2"></u-count-to>

千分位分隔符

通过separator配置千分位分隔符,默认为空字符串,可以设置英文逗号”,”,此参数表现为end-val值超过1000时,比如为”1257”,那么滚动后会变成”1,245”,在金额数值时, 该参数可能会用上。

  1. <u-count-to :end-val="1542" separator=","></u-count-to>

滚动执行的时机

可以通过autoplay设置是否需要初始化时就开始滚动,默认为true,如果设置为false,可以通过组件的ref去控制组件内部的start()paused() 方法来开始或暂停。

  1. <template>
  2. <u-count-to ref="uCountTo" :end-val="endVal" :autoplay="autoplay"></u-count-to>
  3. </template>
  4. <script>
  5. export default {
  6. data() {
  7. return {
  8. endVal: 5000.55,
  9. autoplay: false
  10. };
  11. },
  12. methods: {
  13. start() {
  14. this.$refs.uCountTo.start();
  15. },
  16. paused() {
  17. this.$refs.uCountTo.paused();
  18. },
  19. reStart() {
  20. this.$refs.uCountTo.reStart();
  21. },
  22. }
  23. }
  24. </script>

API

Props

参数说明类型默认值可选值
start-val开始值String | Number0-
end-val结束值String | Number0-
duration滚动过程所需的时间,单位msString | Number2000-
autoplay是否自动开始滚动Booleantruefalse
decimals要显示的小数位数,见上方说明String | Number0-
use-easing滚动结束时,是否缓动结尾,见上方说明Booleantruefalse
separator千位分隔符,见上方说明String--
color字体颜色String#303133-
font-size字体大小,单位rpxString | Number50-
bold字体是否加粗Booleanfalsetrue

Methods

此方法如要通过ref手动调用

名称说明
startautoplayfalse时,通过此方法启动滚动
reStart暂停后重新开始滚动(从暂停前的值开始滚动)
paused暂停滚动

Event

事件名说明回调参数版本
end数值滚动到目标值时触发--