VUE数字翻滚效果组件

VUE数字翻滚效果组件

数字自下向上滚动 支持动态修改

template

<div class="numberScroll">
  <div class="screenMini" v-for="(item,index) in numberToArray" :key="index">
    <div :style="reStyle(item)">
      <div v-for="(v,i) in numberBox" :key="i">{{v}}</div>
    </div>
  </div>
</div>

script

export default {
  props: {
    /**
     * 传入值String, Number
     */
    number: {
      type: [String, Number],
      default: 0
    }
  },
  data () {
    return {
      numberBox: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
      numberToArray: []
    }
  },
  methods: {
    reStyle (number) {
      return `transform:translate(0,-${+number * 0.42}rem)`
    }
  },
  watch: {
    number: {
      immediate: true,
      deep: true,
      handler (n) {
        const arr = n.toString().split('')
        this.numberToArray = new Array(arr.length).fill(0)
        setTimeout(() => {
          this.numberToArray = arr
        }, 10)
      }
    }
  }
}

style less

.numberScroll{
    display: flex;
    align-items: center;
    .screenMini{
      height: .42rem;
      width: .26rem;
      overflow: hidden;
      &>div{
        display: flex;
        flex-direction: column;
        transform: translate(0,0);
        transition: all .6s;
        &>div{
          display: flex;
          align-items: flex-end;
          justify-content: center;
          line-height:1;
          overflow: hidden;
          height: .42rem;
        }
      }
    }
  }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值