improve: interpolation logic

This commit is contained in:
alikia2x (寒寒) 2025-02-05 03:59:53 +08:00
parent 8fe3c73c09
commit f27c290f39
Signed by: alikia2x
GPG Key ID: 56209E0CCD8420C6

View File

@ -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);
}
}
}