From f3afcabd9649eb35d08d939abdab2682d0558ff6 Mon Sep 17 00:00:00 2001 From: John Factotum <50942278+johnfactotum@users.noreply.github.com> Date: Thu, 26 Sep 2024 13:22:28 +0800 Subject: [PATCH] Media Overlay: support `playback-active-class` --- view.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/view.js b/view.js index e236691..354d2af 100644 --- a/view.js +++ b/view.js @@ -111,8 +111,8 @@ export class View extends HTMLElement { this.#root.append(this.renderer) if (book.sections.some(section => section.mediaOverlay)) { - book.media.activeClass ||= '-epub-media-overlay-active' const activeClass = book.media.activeClass + const playbackActiveClass = book.media.playbackActiveClass this.mediaOverlay = book.getMediaOverlay() let lastActive this.mediaOverlay.addEventListener('highlight', e => { @@ -123,11 +123,18 @@ export class View extends HTMLElement { .find(x => x.index = resolved.index) const el = resolved.anchor(doc) el.classList.add(activeClass) + if (playbackActiveClass) el.ownerDocument + .documentElement.classList.add(playbackActiveClass) lastActive = new WeakRef(el) }) }) this.mediaOverlay.addEventListener('unhighlight', () => { - lastActive?.deref()?.classList?.remove(activeClass) + const el = lastActive?.deref() + if (el) { + el.classList.remove(activeClass) + if (playbackActiveClass) el.ownerDocument + .documentElement.classList.remove(playbackActiveClass) + } }) } }