diff --git a/frontend/src/ts/test/monkey.ts b/frontend/src/ts/test/monkey.ts index bd9af20b4173..c0f2f59167e4 100644 --- a/frontend/src/ts/test/monkey.ts +++ b/frontend/src/ts/test/monkey.ts @@ -5,10 +5,13 @@ import * as TestState from "../test/test-state"; import * as KeyConverter from "../utils/key-converter"; import { qs } from "../utils/dom"; import { Keycode } from "../constants/keys"; +import { JSAnimation } from "animejs"; const monkeyEl = qs("#monkey"); const monkeyFastEl = qs("#monkey .fast"); +let monkeyFastOpacityAnimation: JSAnimation | undefined; + configEvent.subscribe(({ key }) => { if (key === "monkey" && TestState.isActive) { if (Config.monkey) { @@ -51,7 +54,7 @@ function update(): void { export function updateFastOpacity(num: number): void { if (!Config.monkey) return; const opacity = mapRange(num, 130, 180, 0, 1); - monkeyFastEl?.animate({ + monkeyFastOpacityAnimation = monkeyFastEl?.animate({ opacity: opacity, duration: 1000, }); @@ -141,6 +144,7 @@ export function hide(): void { onComplete: () => { monkeyEl?.hide(); monkeyEl?.setStyle({ animationDuration: "0s" }); + monkeyFastOpacityAnimation?.cancel(); monkeyFastEl?.setStyle({ opacity: "0" }); }, }); @@ -150,5 +154,6 @@ export function instantHide(): void { monkeyEl?.hide(); monkeyEl?.setStyle({ opacity: "0" }); monkeyEl?.setStyle({ animationDuration: "0s" }); + monkeyFastOpacityAnimation?.cancel(); monkeyFastEl?.setStyle({ opacity: "0" }); }