数字翻牌器

效果入下:
效果

// 翻牌器组件 countFlop.vue

<template>
  <div class="count-flop" :key="compKey">
    <div :class="item!='.'?'count-flop-box':'count-flop-point'" v-for="(item, index) in value" :key="index">
      <div v-if="item!='.'" class="count-flop-content" :class="['rolling_' + item]">
        <div v-for="(item2,index2) in numberList" :key="index2" class="count-flop-num">{{item2}}</div>
      </div>
      <div v-else class="count-flop-content">.</div>
    </div>
    <div v-if="suffix" class="count-flop-box">{{suffix}}</div>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        value: [],
        numberList: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
        compKey: 0
      };
    },
    props: ["val","suffix"],
    watch: {
      val() {
        this.value = this.val.toString().split("");
        this.compKey += 1;
      }
    },
    created() {
      this.value = this.val.toString().split("");
    },
  };
</script>
<style scoped>
  @font-face {
    font-family: "UnidreamLED";
    src: url("../../static/fonts/UnidreamLED.ttf") format("truetype");
  }
  .count-flop {
    display: inline-block;
    font-size: 0;
    height: 80px;
    line-height: 80px;
    font-size: 36px;
    color: #4898f1;
    font-size: 0;
  }
  .count-flop > div {
    position: relative;
    display: inline-block;
    overflow: hidden;
    height: 100%;
  }
  .count-flop-box {
    margin-right: 7px;
    width: 40px;
    line-height: 80px;
    color: #60EAFF;
    position: relative;
    font-size: 36px;
  }
  .count-flop-box:last-child {
    margin: 0;
  }
  .count-flop-box::after, .count-flop-box::before {
    display: inline-block;
    content: "";
    width: 40px;
    height: 38px;
    background: rgba(56,160,214,0.5);
    position: absolute;
    left: 0;
  }
  .count-flop-box::after {
    top: 0;
  }
  .count-flop-box::before {
    bottom: 0;
  }
  .count-flop-point {
    margin-right: 5px;
    width: 10px;
  }
  .count-flop-content {
    font-family: "UnidreamLED", "Helvetica Neue", Helvetica, Arial, sans-serif;
    text-align: center;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    animation-fill-mode: forwards !important;
    font-size: 46px;
  }
  .rolling_0 {
    animation: rolling_0 2.1s ease;
  }
  @keyframes rolling_0 {
    from {
      transform: translateY(-90%);
    }
    to {
      transform: translateY(0);
    }
  }
  .rolling_1 {
    animation: rolling_1 3s ease;
  }
  @keyframes rolling_1 {
    from {
      transform: translateY(0);
    }
    to {
      transform: translateY(-10%);
    }
  }
  .rolling_2 {
    animation: rolling_2 2.1s ease;
  }
  @keyframes rolling_2 {
    from {
      transform: translateY(0);
    }
    to {
      transform: translateY(-20%);
    }
  }
  .rolling_3 {
    animation: rolling_3 3s ease;
  }
  @keyframes rolling_3 {
    from {
      transform: translateY(0);
    }
    to {
      transform: translateY(-30%);
    }
  }
  .rolling_4 {
    animation: rolling_4 2.1s ease;
  }
  @keyframes rolling_4 {
    from {
      transform: translateY(0);
    }
    to {
      transform: translateY(-40%);
    }
  }
  .rolling_5 {
    animation: rolling_5 3s ease;
  }
  @keyframes rolling_5 {
    from {
      transform: translateY(0);
    }
    to {
      transform: translateY(-50%);
    }
  }
  .rolling_6 {
    animation: rolling_6 2.1s ease;
  }
  @keyframes rolling_6 {
    from {
      transform: translateY(0);
    }
    to {
      transform: translateY(-60%);
    }
  }
  .rolling_7 {
    animation: rolling_7 3.1s ease;
  }
  @keyframes rolling_7 {
    from {
      transform: translateY(0);
    }
    to {
      transform: translateY(-70%);
    }
  }
  .rolling_8 {
    animation: rolling_8 2.1s ease;
  }
  @keyframes rolling_8 {
    from {
      transform: translateY(0);
    }
    to {
      transform: translateY(-80%);
    }
  }
  .rolling_9 {
    animation: rolling_9 3.6s ease;
  }
  @keyframes rolling_9 {
    from {
      transform: translateY(0);
    }
    to {
      transform: translateY(-90%);
    }
  }
</style>

引用:

<countFlop :val="total" suffix=""/>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Datav数字翻牌是一款可以将数字转换成翻牌动画效果展示的工具。它通过数字的切换和翻转,营造出逼真的翻牌效果,使数据呈现更加生动和吸引人。这款翻牌具有以下几个特点和优势。 首先,Datav数字翻牌支持多种数字展示方式。可以根据需求,选择水平翻转、垂直翻转或者混合翻转等不同的翻牌效果。不仅仅可以展示整数,还可以展示带有小数点的浮点数,提高了数据展示的灵活性和可扩展性。 其次,Datav数字翻牌具备丰富的动画效果和样式定制功能。用户可以通过调整动画速度、变换效果等参数,使数字切换的过程更加平滑和自然。同时,还可以自定义字体、颜色、背景图案等样式,使翻牌与展示场景更好地融合,提升视觉效果。 此外,Datav数字翻牌还可以与其他数据展示组件深度集成,形成更加复杂和精美的数据可视化效果。用户可以通过组合数字翻牌和图表、地图等其他组件,实现多样化的数据展示和分析,帮助观众更好地理解数据含义和趋势。 最后,Datav数字翻牌还具备一定的交互功能。用户可以通过点击、拖拽等操作,实时改变数字展示的数值,以便于进行动态展示和数据对比。同时,还可以根据用户的需求,实现数字自动翻转、循环播放等自动化效果,提升用户体验。 总体来说,Datav数字翻牌是一款功能强大、灵活多样的数据可视化工具。它通过生动的翻牌动画效果,提供直观、易懂的数据展示方式,帮助用户更好地传达数据信息,提高数据分析和决策的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值