日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Vue3 實現超級有趣的功能:數字增長動畫!!

來源: 責編: 時間:2024-04-19 09:25:20 153觀看
導讀前言大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心~背景平時瀏覽一些跟數字有關的網頁的時候,可能你會發現數字并不是直接從 0 變成 99999 的,這樣會很生硬,而是會有一個從 0

前言

大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心~xyh28資訊網——每日最新資訊28at.com

背景

平時瀏覽一些跟數字有關的網頁的時候,可能你會發現數字并不是直接從 0 變成 99999 的,這樣會很生硬,而是會有一個從 0 增長到 99999 的動畫效果,如下圖xyh28資訊網——每日最新資訊28at.com

圖片圖片xyh28資訊網——每日最新資訊28at.com

那這個效果要怎么實現呢?其實挺簡單的,也挺有趣的,繼續往下看吧~xyh28資訊網——每日最新資訊28at.com

useNumberAnimation

我們創建一個文件 use-number-animation.ts 來寫這個 hooksxyh28資訊網——每日最新資訊28at.com

確定參數

首先來確定這個函數需要接受什么參數:xyh28資訊網——每日最新資訊28at.com

  • from:起始數字
  • to:最終數字
  • duration:動畫延遲間隔
  • onProgress:增長回調函數

圖片圖片xyh28資訊網——每日最新資訊28at.com

requestAnimationFrame

圖片圖片xyh28資訊網——每日最新資訊28at.com

可以看到數字是在不停變化的,所以我們需要有一個定時任務去讓這個數字一直變化才行,那么用 setInterval 嗎?不是的,顯然用 requestAnimationFrame 性能會更佳,它會在瀏覽器下一幀重繪之前執行~xyh28資訊網——每日最新資訊28at.com

圖片圖片xyh28資訊網——每日最新資訊28at.com

增長速度

圖片圖片xyh28資訊網——每日最新資訊28at.com

可以看到數字在不斷增長,那么既然是增長,就需要計算增長速度,增長速度要怎么算呢?xyh28資訊網——每日最新資訊28at.com

假設我要用3000ms的時間去從0增長到378291.668,那增長速度是不是 (378291.668 - 0) / 3000呢?xyh28資訊網——每日最新資訊28at.com

圖片圖片xyh28資訊網——每日最新資訊28at.com

由此我們可以知道增長速度 speed = (to - from) / duration;xyh28資訊網——每日最新資訊28at.com

圖片xyh28資訊網——每日最新資訊28at.com

啥時候終止增長?

啥時候終止增長呢?其實很簡單,那就是從開始增長開始,經過的時間大于 duration 時,就終止,這個時候說明動畫必須要結束的~xyh28資訊網——每日最新資訊28at.com

最終代碼

可以得出最終的代碼為xyh28資訊網——每日最新資訊28at.com

圖片圖片xyh28資訊網——每日最新資訊28at.com

使用方式如下xyh28資訊網——每日最新資訊28at.com

圖片xyh28資訊網——每日最新資訊28at.com

最終達到數字增長的動畫效果~xyh28資訊網——每日最新資訊28at.com

圖片 圖片 xyh28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-84002-0.htmlVue3 實現超級有趣的功能:數字增長動畫!!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Git Worktree 讓你再也無需切換分支!

下一篇: WPF魔法:輕松實現依賴注入與控制反轉提升代碼優雅性與可維護性

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 麻阳| 崇文区| 贵定县| 板桥市| 阳江市| 德保县| 廉江市| 汉川市| 绥滨县| 绥德县| 九龙坡区| 辽宁省| 万州区| 阿城市| 遵义县| 五原县| 旬邑县| 阜阳市| 威信县| 革吉县| 彩票| 平山县| 溧水县| 新昌县| 义马市| 道孚县| 麻江县| 江门市| 玉林市| 新干县| 江山市| 钟山县| 建湖县| 澄江县| 内丘县| 金华市| 恩施市| 奉节县| 镇平县| 辰溪县| 平陆县|