From 619899e297b74449831f03897427789f665f957d Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Tue, 6 Oct 2026 18:23:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=89=8D=E7=AB=AF=E7=95=8C=E9=9D=A2):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=9B=AE=E5=BD=95=E9=93=BE=E6=8E=A5=E5=AE=9A?= =?UTF-8?q?=E4=BD=8D=E5=81=8F=E5=B7=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/webui/ofdgo.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/assets/webui/ofdgo.js b/assets/webui/ofdgo.js index 8eb853e..47c9d97 100644 --- a/assets/webui/ofdgo.js +++ b/assets/webui/ofdgo.js @@ -6230,12 +6230,12 @@ async function navigateDestination(dest) { const seq = state.openSeq, scale = state.scale; let retained = null; if (dest.omitLeft || dest.omitTop) { - const current = state.doc.pages[state.pageIndex], shell = pageShell(state.pageIndex)?.getBoundingClientRect(); - if (current && shell) { - const viewer = el.viewerPanel.getBoundingClientRect(); + const current = state.doc.pages[state.pageIndex], node = pageShell(state.pageIndex); + if (current && node) { + const shell = node.getBoundingClientRect(), viewer = el.viewerPanel.getBoundingClientRect(); retained = sourcePoint(current, - (viewer.left + pageSpace() - shell.left) / (MM_TO_PX * scale), - (viewer.top + pageBlockSpace() - shell.top) / (MM_TO_PX * scale)); + (viewer.left + (el.viewerPanel.clientLeft || 0) - shell.left - (node.clientLeft || 0)) / (MM_TO_PX * scale), + (viewer.top + (el.viewerPanel.clientTop || 0) - shell.top - (node.clientTop || 0)) / (MM_TO_PX * scale)); } } await renderPage(index, { fit: false, scroll: false }); @@ -6268,9 +6268,9 @@ async function navigateDestination(dest) { point.y = Math.min(point.y, bottom.y); } if (state.pageWindow) syncPageWindow(state.pageWindow, state.pageWindow.offsets[index]); - const shell = pageShell(index).getBoundingClientRect(), viewer = el.viewerPanel.getBoundingClientRect(); - el.viewerPanel.scrollLeft += shell.left - viewer.left + point.x * MM_TO_PX * state.scale - space; - scrollViewerBy(shell.top - viewer.top + point.y * MM_TO_PX * state.scale - pageBlockSpace()); + const node = pageShell(index), shell = node.getBoundingClientRect(), viewer = el.viewerPanel.getBoundingClientRect(); + el.viewerPanel.scrollLeft += shell.left + (node.clientLeft || 0) - viewer.left - (el.viewerPanel.clientLeft || 0) + point.x * MM_TO_PX * state.scale; + scrollViewerBy(shell.top + (node.clientTop || 0) - viewer.top - (el.viewerPanel.clientTop || 0) + point.y * MM_TO_PX * state.scale); } function createTextLayer(text) {