美文网首页极客
玩转数字滚动插件——odometer

玩转数字滚动插件——odometer

作者: 极客传 | 来源:发表于2019-03-08 20:42 被阅读0次

    odometer 插件是不支持小数位显示的。列如传入 value: 0.16,显示的是 0;传入 value: 16.5,显示的是 16

    现需要用 odometer 插件的数字滚动效果,来显示一款 APP 的用户在线率,显示结果要保留 2 位小数。如:后台返回的值是 0.1614,前端显示为 16.14%;后台返回的值是 0.0014,前端显示为 0.14%。

    • 显示小数位:
      由于 odometer 插件只支持整数显示,将后台返回值乘以 10000,再设置显示格式为 format: '(ddd).dd'

      例如:后台返回 0.1614, 令 value = 0.1614 * 10000,并设置显示格式为 format: '(ddd).dd',显示结果就是 16.14

    • 显示零点几的小数:
      例如:后台返回 0.0014,令 value = 0.0014 * 10000 + 1000,设置显示格式为 format: '(ddd).dd',此时显示结果为 10.14

      隐藏掉首位的数字 1

    .iodometer .odometer-digit:first-child{
       display: none;
    }
    

    .

    综合两种情况需要设置 2 个 odometer,分别在 value 值大于等于 0.001 时显示,和 value 值小于 0.001 时显示。

    <template>
    
      <odometer id="moreOne" v-if="resValue >= 0.001"
      :value="dealNum(resValue)" :format="'(ddd.dd)'"/>
    
      <odometer id="lessOne" v-if="resValue < 0.001"
      :value="dealNum(resValue)" :format="'(ddd.dd)'"/>
    
    </template>
    
    <script>
      dealNum (num) {
        if (num < 0.001) {
          return num * 10000 + 1000;
        } else if (num < 0.001) {
          return num * 10000;
        } else {
          return 0;
        }
      }
    </script>
    
    <style>
      #lessOne.iodometer .odometer-digit:first-child{
         display: none;
      }
    
    /*显示百分号*/
    .iodometer .odometer-digit:last-child{
       .odometer-inside::after {
           content: '%';
           font-size: px2rem(20);
           position: relative;
           right: px2rem(0);
           bottom: px2rem(-10);
           color: #c2c4c8;
       }
    }
    </style>
    

    由于是通过 v-if 来切换显示,数值从 小于 0.001 过渡到 大于等于 0.001,显示效果不太好。


    【1】odometer

    相关文章

      网友评论

        本文标题:玩转数字滚动插件——odometer

        本文链接:https://www.haomeiwen.com/subject/ufmlpqtx.html