Pause time while page is hidden

This commit is contained in:
Jake Archibald
2020-11-26 14:47:08 +00:00
parent 251dc2ce9b
commit a2c465abdf

View File

@@ -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) {