当前位置: 首页 > news >正文

超简单,几行js代码就实现一个 vue3 的数字滚动效果!

预览效果

请添加图片描述

1. 创建一个template

<template><div class="num-warp"><template v-for="item in numStr"><div v-if="item === ','" class="dot">,</div><divv-elseclass="num-box":style="{transform: ` translateY(${-sh * Number(item)}px)`,}"><span v-for="i in 10"> {{ i - 1 }} </span></div></template></div>
</template>

2 实现js逻辑部分

<script setup lang="ts">
// 这个没有做成组件,做成组件的话,自己稍微改改
import { computed, onMounted, ref } from "vue";// 基础数据源,或者外部传入
const num = ref(15481245784544);
// 这个是滚动的高度,也就是一个span元素的默认高度,设置的文字大小不同,这个元素的高度也不同,你可以动态计算,我是直接控制台鼠标点击查看的元素大小,比较省事
const sh = ref(60);// 转化成千分位
const numStr = computed(() => {return num.value.toLocaleString();
});// 这是个测试代码
onMounted(() => {setInterval(() => {num.value = Math.floor(Math.random() * 100000000000000);}, 2000);
});
</script>

实现样式

<style scoped>
.dot {font-size: 40px;
}
.num-warp {display: flex;height: 60px;overflow-y: hidden;line-height: 60px;
}
.num-box {display: flex;flex-direction: column;font-size: 40px;margin: 0 1px;transition: all 1s;
}
</style>
http://www.lryc.cn/news/168490.html

相关文章:

  • 两阶段鲁棒优化matlab实现——CCG和benders
  • 二进制安全虚拟机Protostar靶场(4)写入shellcode,基础知识讲解 Stack Five
  • 【Flink实战】玩转Flink里面核心的Source Operator实战
  • [2023-09-12]Oracle备库查询报ORA-01187
  • leetcode 16.最接近的三数之和
  • antd table 自定义排序图标
  • 第十九章、【Linux】开机流程、模块管理与Loader
  • GMAC PHY介绍
  • 华为OD机考算法题:最远足迹
  • QScrollBar滚动条、QSlider滑块、 QDial表盘
  • Prometheus+Grafana可视化监控【MySQL状态】
  • 五,编译定制rom并刷机实现硬改(二)
  • Modbus协议详解3:数据帧格式 - RTU帧 ASCII帧的区别
  • 认识数据分析
  • Learn Prompt-ChatGPT 精选案例:写作博客
  • 《确保安全:PostgreSQL安全配置与最佳实践》
  • Unity中Shader抓取屏幕并实现扭曲效果
  • 深浅拷贝详解
  • @Scheduled 定时任务
  • 丙烯酸共聚聚氯乙烯树脂
  • Navicat导入Excel数据顺序变了
  • uni-app的生命周期
  • Vulnhub实战-DC9
  • 软件设计模式系列之七——原型模式
  • PMP考试注意事项有哪些?
  • chartgpt+midjourney
  • 【SpringMVC】自定义注解
  • 【李沐深度学习笔记】数据操作实现
  • 【深度学习-注意力机制attention 在seq2seq中应用】
  • 详解混合类型文件(Polyglot文件)的应用生成与检测