From a2c465abdfa27cd838e6f0c4a0a6c7c1039ec070 Mon Sep 17 00:00:00 2001 From: Jake Archibald Date: Thu, 26 Nov 2020 14:47:08 +0000 Subject: [PATCH] Pause time while page is hidden --- src/shared/initial-app/Intro/blob-anim/index.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/shared/initial-app/Intro/blob-anim/index.ts b/src/shared/initial-app/Intro/blob-anim/index.ts index 6cb54655..543c1576 100644 --- a/src/shared/initial-app/Intro/blob-anim/index.ts +++ b/src/shared/initial-app/Intro/blob-anim/index.ts @@ -323,6 +323,10 @@ export function startBlobAnim(canvas: HTMLCanvasElement) { let deltaMultiplier = hasFocus ? 1 : 0; let animating = true; + const visibilityListener = () => { + // 'Pause time' while page is hidden + if (document.visibilityState === 'visible') lastTime = performance.now(); + }; const focusListener = () => { hasFocus = true; if (!animating) startAnim(); @@ -338,10 +342,12 @@ export function startBlobAnim(canvas: HTMLCanvasElement) { addEventListener('focus', focusListener); addEventListener('blur', blurListener); + document.addEventListener('visibilitychange', visibilityListener); function destruct() { removeEventListener('focus', focusListener); removeEventListener('blur', blurListener); + document.removeEventListener('visibilitychange', visibilityListener); } function drawFrame(delta: number) {