mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-19 12:08:57 +00:00
Pause time while page is hidden
This commit is contained in:
@@ -323,6 +323,10 @@ export function startBlobAnim(canvas: HTMLCanvasElement) {
|
|||||||
let deltaMultiplier = hasFocus ? 1 : 0;
|
let deltaMultiplier = hasFocus ? 1 : 0;
|
||||||
let animating = true;
|
let animating = true;
|
||||||
|
|
||||||
|
const visibilityListener = () => {
|
||||||
|
// 'Pause time' while page is hidden
|
||||||
|
if (document.visibilityState === 'visible') lastTime = performance.now();
|
||||||
|
};
|
||||||
const focusListener = () => {
|
const focusListener = () => {
|
||||||
hasFocus = true;
|
hasFocus = true;
|
||||||
if (!animating) startAnim();
|
if (!animating) startAnim();
|
||||||
@@ -338,10 +342,12 @@ export function startBlobAnim(canvas: HTMLCanvasElement) {
|
|||||||
|
|
||||||
addEventListener('focus', focusListener);
|
addEventListener('focus', focusListener);
|
||||||
addEventListener('blur', blurListener);
|
addEventListener('blur', blurListener);
|
||||||
|
document.addEventListener('visibilitychange', visibilityListener);
|
||||||
|
|
||||||
function destruct() {
|
function destruct() {
|
||||||
removeEventListener('focus', focusListener);
|
removeEventListener('focus', focusListener);
|
||||||
removeEventListener('blur', blurListener);
|
removeEventListener('blur', blurListener);
|
||||||
|
document.removeEventListener('visibilitychange', visibilityListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
function drawFrame(delta: number) {
|
function drawFrame(delta: number) {
|
||||||
|
|||||||
Reference in New Issue
Block a user