From 9fd2209b4d33fd759760a56cc8247cc9e29f03b4 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Sat, 2 Aug 2025 07:43:27 +0800 Subject: [PATCH] Fix blocked animate when running in background (#80) --- paginator.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/paginator.js b/paginator.js index 6cf729f..7980c20 100644 --- a/paginator.js +++ b/paginator.js @@ -19,12 +19,20 @@ const easeOutQuad = x => 1 - (1 - x) * (1 - x) const animate = (a, b, duration, ease, render) => new Promise(resolve => { let start const step = now => { + if (document.hidden) { + render(lerp(a, b, 1)) + return resolve() + } start ??= now const fraction = Math.min(1, (now - start) / duration) render(lerp(a, b, ease(fraction))) if (fraction < 1) requestAnimationFrame(step) else resolve() } + if (document.hidden) { + render(lerp(a, b, 1)) + return resolve() + } requestAnimationFrame(step) })