css 数字从0开始增加的动画效果

项目场景:

提示:这里简述项目相关背景:

在有些时候比如在做C端项目的时候,页面一般需要一些炫酷效果,比如数字会从小值自动加到数据返回的值

css 数字从0开始增加的动画效果

 


分析:

提示:这里填写问题的分析:

可以使用自定义属性,让自定义属性的值自动从小值一直自动加到与后端返回的值一样大,

这里需要注意一点,需要在节点挂载完成后才可以,不然,给节点加属性的时候找不到哪个节点,

另外也要拿到后端返回的值,因为自动加到的值与后端返回的一样才行,


解决方案:

提示:这里填写该问题的具体解决方案:

<template><div ref="observerElement" class="observed-element flexEv bannerBg padTB100 padLR65 colorW"><div class="flex" v-for="item in props.bannerInfo"><div class="borderR paddingR20 flexC"><i :class="item.icon" class="iconfont fontS40 fontW4 colorW hoverS"></i></div><div class="paddingL20"><div ref="numRef" class="fontS26 fontW6 marginB10 number inLb":data-target="item.textTop"></div> <div class="fontS26 fontW6 inLb">+</div><div class="fontS18 fontW5">{{item.textBottom}}</div></div></div></div>
</template><script lang="ts" setup>
import {reactive,toRefs,ref,Ref,PropType,onMounted,onBeforeUnmount,
} from "vue"
const props=defineProps({// bannerInfo:{type:Array},
})
// 自动将数值加到会后那个值的方法
const changeNum=()=>{// 获取元素const numbers = document.querySelectorAll('.number')console.log("",numbers)// 获取所有的dom,querySelectorAll为为数组numbers.forEach(item => {item.textContent = "0";const upDateNumber = () => {// 获取每个类名为number的data-target,即获取最大值 const target = Number(item.getAttribute('data-target'))// 获取当前div的数值const d = Number(item.textContent)// 设置数据增加的值,可以通过target除的数值确定怎么加数值的快慢const increment = target / 100// 当数字小于最大值时,执行下面的操作if (d < target) {// 向上取整item.textContent = `${Math.ceil(d + increment)}`// 1ms重新调用,不然它会在第一次运行完就结束setTimeout(upDateNumber, 1000)} else {item.textContent = target+"";//textContent的值是 字符串 所以加个空字符}}upDateNumber()})
}
// 在节点挂载完成后 再执行
onMounted(()=>{console.log()changeNum()
})onBeforeUnmount(()=>{console.log()
})
const emit =defineEmits([""
])</script><style lang="less" scoped>
.bannerBg{background-color:#1d7b51 ;
}
.borderR{border-right: 1px solid #ffffff;
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/77851.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CUDA编程 - 如何使用 CUDA 流在 GPU 设备上并发执行多个内核 - 如何应用到自己的项目中 - concurrentKernels

如何使用 CUDA 流在 GPU 设备上并发执行多个内核 一、完整代码与例程目的1.1、通过现实场景来理解多任务协作&#xff1a;1.2、完整代码&#xff1a; 二、代码拆解与复用2.1、编程模版 一、完整代码与例程目的 项目地址&#xff1a;https://github.com/NVIDIA/cuda-samples/tr…

vue3 打字机效果

打字机效果 因后端返回的数据也是通过microsoft/fetch-event-source 一句一句流式返回 但是前端展示效果想要实现打字机效果 代码如下 <template><div><div class"text-container"><span class"text-content">{{ displayText }…

线上JVM调优与全栈性能优化 - Java架构师面试实战

线上JVM调优与全栈性能优化 - Java架构师面试实战 本文通过一场互联网大厂的Java架构师面试&#xff0c;深入探讨了线上JVM调优、OOM定位、死锁定位、内存和CPU调优、线程池调优、数据库调优、缓存调优、网络调优、微服务调优及分布式调优等关键领域。 第一轮提问 面试官&am…

【Android】轻松实现实时FPS功能

文章目录 实时FPS 实时FPS 初始化 choreographer Choreographer.getInstance();lastFrameTimeNanos System.nanoTime();choreographer.postFrameCallback(frameCallback);监听并显示 Choreographer.FrameCallback frameCallback new Choreographer.FrameCallback() {Overri…

GD32F407单片机开发入门(十九)DMA详解及ADC-DMA方式采集含源码

文章目录 一.概要二.GD32F407VET6单片机DMA外设特点三.GD32单片机DMA内部结构图四.DMA各通道请求五.GD32F407VET6单片机ADC-DMA采集例程六.工程源代码下载七.小结 一.概要 基本概念&#xff1a; DMA是Direct Memory Access的首字母缩写,是一种完全由硬件执行数据交换的工作方式…

vue报错:Error: Cannot find module ‘is-stream‘

此错误提示 Cannot find module ‘is-stream’ 表明 Node.js 无法找到 is-stream 模块。一般而言&#xff0c;这是由于项目中未安装该模块所导致的。 解决方案: //npm npm install is-stream //yarn yarn add is-stream安装后检查 安装完成之后&#xff0c;你可以再次运行项目…

全局事件总线EventBus的用法

全局事件总线 EventBus 在前端开发中是一种用于实现组件间通信的机制&#xff0c;适用于兄弟组件或跨层级组件间的数据传递。 1. 创建全局 EventBus 实例 在前端项目中&#xff0c;先创建一个全局的 EventBus 实例。在 Vue 中&#xff0c;可以通过创建一个新的 Vue 实例来实现…

SpringBoot 设置HTTP代理访问

SpringBoot 设置HTTP代理访问 遇到这样的一个场景&#xff0c;代码部署到私有服务器上去之后&#xff0c;这台私有服务器a无法直接访问公网&#xff0c;需要通过代理转发到另外一台专门访问公网的服务器b, 让服务器b去请求对应的公网ip&#xff0c;于是就需要设置Http代理。 …

在C# WebApi 中使用 Nacos01:基础安装教程和启动运行

一、JDK的安装 Nacos需要依赖JAVA环境运行,所以需要先安装JDK 1.检查是否安装 可用命令行检查是否安装JDK 直接win+r,cmd: java -version 出现这个说明安装成功 2.下载JDK 访问官网点击下载:

cURL 入门:10 分钟学会用命令行发 HTTP 请求

curl初识 curl 通过 URL 传输数据的命令行工具和库是一个非常强大的命令行工具&#xff0c;用于在网络上传输数据。它支持众多的协议&#xff0c;像 dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps…

Redis应用场景实战:穿透/雪崩/击穿解决方案与分布式锁深度剖析

一、缓存异常场景全解与工业级解决方案 1.1 缓存穿透&#xff1a;穿透防御的三重门 典型场景 恶意爬虫持续扫描不存在的用户ID 参数注入攻击&#xff08;如SQL注入式查询&#xff09; 业务设计缺陷导致无效查询泛滥 解决方案进化论 第一层防护&#xff1a;布隆过滤器&am…

C# 高效操作excel文件

C#高效操作Excel文件指南 一、主流Excel处理方案对比 方案类型特点适用场景​​EPPlus​​第三方库功能全面&#xff0c;性能好&#xff0c;支持.xlsx复杂Excel操作&#xff0c;大数据量​​NPOI​​第三方库支持.xls和.xlsx&#xff0c;功能全面兼容旧版Excel文件​​Closed…

Rust 学习笔记:结构体(struct)

Rust 学习笔记&#xff1a;结构体&#xff08;struct&#xff09; Rust 学习笔记&#xff1a;结构体&#xff08;struct&#xff09;结构体的定义和实例化使用字段初始化简写用 Struct Update 语法从其他实例创建实例使用没有命名字段的元组结构来创建不同的类型没有任何字段的…

Dify Agent节点的信息收集策略示例

Dify Agent节点的信息收集策略示例 0. 安装"对话 Agent"插件1. 创建一个 Chatflow2. 创建一个 Agent 节点3. 创建一个条件分支节点4. 在IF分支创建一个LLM节点5. 创建一个直接回复节点6. 在ELSE分支创建一个直接回复节点7. 分布并预览 0. 安装"对话 Agent"…

Qt/C++开发监控GB28181系统/获取设备信息/设备配置参数/通道信息/设备状态

一、前言 设备注册成功后&#xff0c;接下来要做的就是获取设备的信息&#xff0c;尤其是通道信息&#xff0c;根据国标协议&#xff0c;永远只有两个层级&#xff0c;一个是设备&#xff0c;然后就是设备下面多个通道&#xff0c;设备编码在整个系统中唯一&#xff0c;通道编…

金融风控的“天眼”:遥感技术的创新应用

在金融市场的复杂博弈中&#xff0c;风险管控一直是金融机构的核心竞争力。然而&#xff0c;传统的风控手段在应对现代金融市场的快速变化时&#xff0c;往往显得捉襟见肘。 如今&#xff0c;遥感技术的创新应用为金融风控带来了全新的视角和手段。星图云开放平台的遥感金融立体…

HFI笔记

高频分量&#xff1a; 载波频率的一半 选择alfabeta轴进行计算的原因 最终结果&#xff1a; 观测器方程 采样加减分离法-&#xff08;高低频分离&#xff09; 高频信号的评论高频载波 转子极性辨识

halcon关闭图形窗口

1、dev_close_window () 调用一次这个函数关闭一个图形窗口&#xff0c;并且先关闭最后打开的那个图形窗口&#xff0c;如果一共打开了N个图形窗口&#xff0c;那么就需要调用dev_close_window N次。

每日算法-250430

每日算法 - 2025年4月30日 记录下今天解决的两道题目。 870. 优势洗牌 (Advantage Shuffle) 题目描述 解题思路与方法 核心思想&#xff1a;贪心策略 (田忌赛马) 这道题的目标是对于 nums1 中的每个元素&#xff0c;找到 nums2 中一个比它小的元素进行配对&#xff08;如果…

【MySQL】增删改查(CRUD)

目录 一. CRUD是什么 二. Create&#xff08;新增数据&#xff09; 2.1 单行数据全列插入 2.2 单行数据指定列插入 2.3 多行数据指定列插入 三. Retrieve &#xff08;检索/查询&#xff09; 3.1 全列查询 3.2 指定列查询 3.3 查询字段为表达式 3.4 为查询结果指定别名 3…