js價格浮動動畫函數(shù)

效果

初始效果.png

動畫變動.png

結(jié)束效果.png

代碼

<label>價格:2999.00</label>
    <button type="button">打折</button>
    
    <script>
        const label = document.querySelector('label')
        const btn = document.querySelector('button')
        btn.onclick = function(){
            animation(1000,2999,299,(val)=>{
                label.textContent = `價格:${val.toFixed(2)}`
            })
        }
        function animation(duration,from,to,onProgress){
            const dis = to - from
            const speed = dis / duration
            const startTime = Date.now()
            let value = from   //當(dāng)前的值
            onProgress(value)
            function _run(){
                const now = Date.now()
                const time = now - startTime
                if(time >= duration){
                    value = to
                    onProgress(value)
                    return
                }
                const d = time * speed 
                value = from + d 
                onProgress(value)
                requestAnimationFrame(_run)
            }
            requestAnimationFrame(_run)
        }
    </script>   
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容