From 2a022ba73eaa8ac6887da29dff41c1a452677113 Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Tue, 8 Sep 2026 01:06:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=89=8D=E7=AB=AF=E4=BC=98=E5=8C=96):=20?= =?UTF-8?q?=E9=92=88=E5=AF=B9=E5=B0=8F=E5=B1=8F=E5=B9=95=E4=BC=98=E5=8C=96?= =?UTF-8?q?WebUI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/webui/ofdgo.css | 4 ++-- assets/webui/ofdgo.js | 19 +++++++++++-------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/assets/webui/ofdgo.css b/assets/webui/ofdgo.css index 101227f..50e94db 100644 --- a/assets/webui/ofdgo.css +++ b/assets/webui/ofdgo.css @@ -35,7 +35,7 @@ body { margin: 0; width: 100%; min-width: 320px; - min-height: 100vh; + min-height: 100dvh; overflow: hidden; background: #eef1f4; } @@ -73,7 +73,7 @@ a:focus-visible { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; width: 100%; - height: 100vh; + height: 100dvh; overflow: hidden; } diff --git a/assets/webui/ofdgo.js b/assets/webui/ofdgo.js index 5f354f9..5d35779 100644 --- a/assets/webui/ofdgo.js +++ b/assets/webui/ofdgo.js @@ -151,11 +151,7 @@ el.pageInput.addEventListener("change", () => { renderPage(page - 1); } }); -window.addEventListener("resize", () => { - if (state.doc) { - applyFit(false); - } -}); +window.addEventListener("resize", resizeViewer); COMPACT_LAYOUT.addEventListener("change", syncLayoutMode); el.viewerPanel.addEventListener("scroll", () => { schedulePageSync(); @@ -193,14 +189,14 @@ function toggleSidebar(side) { state.showMeta = !state.showMeta; } updateSidebarState(); - if (state.doc) { - applyFit(false); - } + resizeViewer(); } function updateSidebarState() { document.body.toggleAttribute("data-hide-pages", !state.showPages); document.body.toggleAttribute("data-hide-meta", !state.showMeta); + el.pageListPanel.inert = !state.showPages; + el.metaPanel.inert = !state.showMeta; el.togglePagesButton.setAttribute("aria-pressed", String(state.showPages)); el.toggleMetaButton.setAttribute("aria-pressed", String(state.showMeta)); } @@ -209,8 +205,15 @@ function syncLayoutMode(event) { state.showPages = !event.matches; state.showMeta = !event.matches; updateSidebarState(); + resizeViewer(); +} + +function resizeViewer() { if (state.doc) { applyFit(false); + if (state.fitMode === "height") { + scrollToPage(state.pageIndex); + } } }