From f27c290f396ec42ad941bdc5747e6164940ca4d7 Mon Sep 17 00:00:00 2001 From: alikia2x Date: Wed, 5 Feb 2025 03:59:53 +0800 Subject: [PATCH] improve: interpolation logic --- packages/core/components/lyrics/lyricLine.svelte | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/core/components/lyrics/lyricLine.svelte b/packages/core/components/lyrics/lyricLine.svelte index f111fcc..17e2d0c 100644 --- a/packages/core/components/lyrics/lyricLine.svelte +++ b/packages/core/components/lyrics/lyricLine.svelte @@ -70,6 +70,10 @@ lastRealY = positionY; lastRealTime = currentTime; lastUpdateY = currentTime; + // 无论是否真实帧都继续请求动画帧(保持动画流畅) + if (!springY?.arrived() && !stopped && !we_are_scrolling) { + requestAnimationFrame(updateY); + } } else if ( prevRealY !== undefined && prevRealTime !== undefined && @@ -82,11 +86,10 @@ const velocity = (lastRealY - prevRealY) / ((lastRealTime - prevRealTime) / 1000); positionY = lastRealY + velocity * deltaT; - } - - // 无论是否真实帧都继续请求动画帧(保持动画流畅) - if (!springY?.arrived() && !stopped && !we_are_scrolling) { - requestAnimationFrame(updateY); + // 无论是否真实帧都继续请求动画帧(保持动画流畅) + if (!stopped && !we_are_scrolling) { + requestAnimationFrame(updateY); + } } }