数字翻牌器效果

数字翻牌器

简单记录一下,最近做的VUE项目里,需要写一个数字翻牌器的效果。过程比较波折,嗯,或者说恶心。引以为戒吧。
先简单看一下这个最终效果。
最终效果

之所以说这个东西搞得略显波折,是因为开始的时候,没有要做什么动画,是临近项目结束的时候,产品说:“搞个动画吧!”

版本1.0

所以就很仓促的搞了一个,当时的效果是这样的。
old
考虑到,可能有人需要这样的效果,我就先把这个版本的代码发上来。

<template>
    <div class="number-bord" :class="title == '外部客户累积量' ? 'bord-a' : 'bord-b'">
        <div class="number-box">
            <div class="number-item" v-for="(item, index) in numberStr" :key="index">
                <div class="scroll-out-box" v-if="item !== ','">
                    <div class="scroll-box" :class="'number-'+item">
                        <div class="font">0</div>
                        <div class="font">1</div>
                        <div class="font">2</div>
                        <div class="font">3</div>
                        <div class="font">4</div>
                        <div class="font">5</div>
                        <div class="font">6</div>
                        <div class="font">7</div>
                        <div class="font">8</div>
                        <div class="font">9</div>
                    </div>
                </div>

                <div class="comma" v-else>,</div>
            </div>
        </div>

        <div class="bord-title">{
  {title}}</div>
    </div>
</template>

<script>
    export default {
    name: "mainten",
        props: {
            title: {
                type: String
            },
            bordNumber: {
                type: Number,
                value: 0
            },
            setTime: {
                type: Boolean,
                value: false
            },
            isCreate: {
                type: Boolean,
                value: true
            }
        },
        data(){
            return{
                numberStr: [],
                timer: null,
                fetchNum: 0, // 记录前一个数据
                restTime: 0,
                isOrg: true
            }
        },
        watch: {
            bordNumber(newVal, oldVal) {
                if (!this.setTime) {
                    // ajax反应太慢,mounted执行可能与watch同步 
                    // 所以,设置该状态为初始化
                    this.fetchNum = oldVal
                    this.transNumber(newVal)
                } else {
                    // console.log('do loop')
                    this.transNumber(newVal)
                }
            },
            isCreate(newVal, oldVal) {
                this.isOrg = newVal
                // console.log(newVal, oldVal)
            }
        },
        mounted() {
            // 首屏加载时,不需要动画
            if (!this.setTime) this.transNumber(this.bordNumber)
        },
        methods:{
            transNumber( num ){
                let old
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Datav数字翻牌是一款可以将数字转换成翻牌动画效果展示的工具。它通过数字的切换和翻转,营造出逼真的翻牌效果,使数据呈现更加生动和吸引人。这款翻牌具有以下几个特点和优势。 首先,Datav数字翻牌支持多种数字展示方式。可以根据需求,选择水平翻转、垂直翻转或者混合翻转等不同的翻牌效果。不仅仅可以展示整数,还可以展示带有小数点的浮点数,提高了数据展示的灵活性和可扩展性。 其次,Datav数字翻牌具备丰富的动画效果和样式定制功能。用户可以通过调整动画速度、变换效果等参数,使数字切换的过程更加平滑和自然。同时,还可以自定义字体、颜色、背景图案等样式,使翻牌与展示场景更好地融合,提升视觉效果。 此外,Datav数字翻牌还可以与其他数据展示组件深度集成,形成更加复杂和精美的数据可视化效果。用户可以通过组合数字翻牌和图表、地图等其他组件,实现多样化的数据展示和分析,帮助观众更好地理解数据含义和趋势。 最后,Datav数字翻牌还具备一定的交互功能。用户可以通过点击、拖拽等操作,实时改变数字展示的数值,以便于进行动态展示和数据对比。同时,还可以根据用户的需求,实现数字自动翻转、循环播放等自动化效果,提升用户体验。 总体来说,Datav数字翻牌是一款功能强大、灵活多样的数据可视化工具。它通过生动的翻牌动画效果,提供直观、易懂的数据展示方式,帮助用户更好地传达数据信息,提高数据分析和决策的效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值