一、功能简介
本篇将实现一个数字自动增长动效,通过逐帧递增数值模拟动画过渡,广泛用于积分变动、数据统计、金额展示、加载进度等场景,提升数值反馈的视觉吸引力。
二、关键动画能力点
能力 | 技术点 |
---|---|
数值动态变化 | @State number 配合计时器递增 |
文本平滑更新 | .toFixed() 控制显示精度 |
动效曲线控制 | 模拟 ease-out、线性等动画节奏 |
三、页面结构
entry/src/main/ets/pages/AnimatedNumberDemo.ets
四、ArkTS 实战代码(AnimatedNumberDemo.ets)
@Entry
@Component
struct AnimatedNumberDemo {
@State currentValue: number = 0
@State targetValue: number = 1000
@State isRunning: boolean = false
animateNumber(from: number, to: number, duration: number = 1000) {
const steps = 30
const stepValue = (to - from) / steps
let current = from
let i = 0
if (this.isRunning) return