偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Vue3 實現(xiàn)超級有趣的功能:數(shù)字增長動畫??!

開發(fā) 前端
啥時候終止增長呢?其實很簡單,那就是從開始增長開始,經(jīng)過的時間大于 duration 時,就終止,這個時候說明動畫必須要結(jié)束的~

前言

大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎(chǔ)是進階的前提是我的初心~

背景

平時瀏覽一些跟數(shù)字有關(guān)的網(wǎng)頁的時候,可能你會發(fā)現(xiàn)數(shù)字并不是直接從 0 變成 99999 的,這樣會很生硬,而是會有一個從 0 增長到 99999 的動畫效果,如下圖

圖片圖片

那這個效果要怎么實現(xiàn)呢?其實挺簡單的,也挺有趣的,繼續(xù)往下看吧~

useNumberAnimation

我們創(chuàng)建一個文件 use-number-animation.ts 來寫這個 hooks

確定參數(shù)

首先來確定這個函數(shù)需要接受什么參數(shù):

  • from:起始數(shù)字
  • to:最終數(shù)字
  • duration:動畫延遲間隔
  • onProgress:增長回調(diào)函數(shù)

圖片圖片

requestAnimationFrame

圖片圖片

可以看到數(shù)字是在不停變化的,所以我們需要有一個定時任務(wù)去讓這個數(shù)字一直變化才行,那么用 setInterval 嗎?不是的,顯然用 requestAnimationFrame 性能會更佳,它會在瀏覽器下一幀重繪之前執(zhí)行~

圖片圖片

增長速度

圖片圖片

可以看到數(shù)字在不斷增長,那么既然是增長,就需要計算增長速度,增長速度要怎么算呢?

假設(shè)我要用3000ms的時間去從0增長到378291.668,那增長速度是不是 (378291.668 - 0) / 3000呢?

圖片圖片

由此我們可以知道增長速度 speed = (to - from) / duration;

圖片

啥時候終止增長?

啥時候終止增長呢?其實很簡單,那就是從開始增長開始,經(jīng)過的時間大于 duration 時,就終止,這個時候說明動畫必須要結(jié)束的~

最終代碼

可以得出最終的代碼為

圖片圖片

使用方式如下

圖片

最終達到數(shù)字增長的動畫效果~

圖片 圖片

責任編輯:武曉燕 來源: 前端之神
相關(guān)推薦

2021-12-02 05:50:35

Vue3 插件Vue應(yīng)用

2025-06-17 09:21:13

2024-01-23 09:15:33

Vue3組件拖拽組件內(nèi)容編輯

2022-03-10 11:04:04

Vue3Canvas前端

2024-05-22 08:47:41

2025-08-08 00:00:00

2021-12-01 08:11:44

Vue3 插件Vue應(yīng)用

2024-02-27 08:27:18

元素拖拽Vue3拼圖驗證

2025-02-17 08:58:06

2024-03-21 08:34:49

Vue3WebSocketHTTP

2021-11-30 08:19:43

Vue3 插件Vue應(yīng)用

2023-11-28 09:03:59

Vue.jsJavaScript

2020-09-19 21:15:26

Composition

2024-02-01 09:10:04

頁面引導工具Vue3

2024-01-16 12:46:00

Vue3API開發(fā)

2024-12-01 00:52:04

2025-09-01 03:00:00

2022-06-26 00:00:02

Vue3響應(yīng)式系統(tǒng)

2021-12-08 09:09:33

Vue 3 Computed Vue2

2024-08-13 09:26:07

點贊
收藏

51CTO技術(shù)棧公眾號