数字动态滚动

数字滚动主要使用css3的transform translateY 上下滚动实现的

模板

<template>
  <div>
    <div
      v-for="(item, index) in this.num"
      :key="index"
      :class="[item===','?'noreal':'real-time-num']"
    >
       <div
        class="real-time-num-item"
        :style="{ transform:item===','? `translateY(-${0* 98}px)`:`translateY(-${item * 98+98}px)`
         }"
      >
        <div>,</div>
        <div>0</div>
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
        <div>5</div>
        <div>6</div>
        <div>7</div>
        <div>8</div>
        <div>9</div>
      </div>
    </div>
    <sonConpoment :valLeft='num' />
  </div>
</template>

数据

<script> 
export default {
  data() {
    return {
      num: []
    };
  },
  props:{
    dataString:{
      type:'String',
      require:true
    }
  },
  watch:{
    dataString:{
      handler(news){
        this.num = []
        this.num = news.split("")
      }
    }
  },
  mounted() {},
  methods: {
    btn() {
      this.num = "1,233,324";
      console.log(this.num.split(""));
    }
  }
};
</script>

样式

.real-time-num {
  display: inline-block;
  width: 66px;
  height: 98px;
  background: linear-gradient(
    0deg,
    rgba(36, 97, 147, 1),
    rgba(115, 157, 191, 1)
  );
  font-size: 60px;
  margin-left: 3px;
  line-height: 98px;
  text-align: center;
  overflow: hidden; // 隐藏内容
}
.noreal{
  display: inline-block;
  width: 10px;
  height: 98px;
  background-color:#ffffff; 
  font-size: 60px;
  margin-left: 3px;
  line-height: 98px;
  text-align: center;
  overflow: hidden; // 隐藏内容  
}
.real-time-num > div {
  width: 66px;
  height: 98px;
}
.real-time-num-item {
  transition: all 1s ease-out;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值