From af935b8cbd3144ab2d899d41543c76c048967470 Mon Sep 17 00:00:00 2001 From: team3 Date: Thu, 8 Oct 2026 16:57:59 +0200 Subject: [PATCH] Buchansicht startet beim Laden immer oben; nur der Lesemodus setzt fort Co-Authored-By: Claude Fable 5.1 --- frontend/src/components/Guide.vue | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/frontend/src/components/Guide.vue b/frontend/src/components/Guide.vue index 43eb3a2..2bccfe4 100644 --- a/frontend/src/components/Guide.vue +++ b/frontend/src/components/Guide.vue @@ -19,17 +19,6 @@ function idVonNr(nr) { } return '' } -// Lesemodus-Schlüssel (vorwort, k3, a03-4:2, ende) → Element-ID der Buchansicht, wenn zuletzt dort gelesen wurde -function idVonLesemodus(pos) { - if (pos.zuletzt !== 'lesen' || !pos.lesemodus || !daten.value) return '' - const m = pos.lesemodus - if (m === 'vorwort') return 'vorwort' - const kap = /^k(\d+)$/.exec(m) - if (kap) return 'k' + (daten.value.kapitel[Number(kap[1]) - 1]?.id || '') - const abs = /^(a[\d-]+):/.exec(m) - if (abs) return abs[1] - return '' -} function nrVonId(id) { if (!id || !daten.value) return '' if (id === 'vorwort') return 'vorwort' @@ -86,10 +75,9 @@ async function laden() { daten.value = d await nextTick() spy() - // Gemerkte Position hat Vorrang (die Adresse spiegelt nur den letzten Scrollstand); zuletzt im Lesemodus gelesen → dessen Stelle - const ziel = idVonLesemodus(pos) || pos.abschnitt || idVonNr(props.nr) - // Am Buchanfang (Vorwort) nicht scrollen, damit Titel und Knopfleiste sichtbar bleiben - if (ziel && ziel !== 'vorwort' && !aktiv.value) scrollZu(ziel) + // Die Buchansicht beginnt beim Laden immer oben; nur der Lesemodus setzt an der gemerkten Stelle fort. + // Zum Abschnitt springen nur bei Klicks im Inhaltsverzeichnis und über die Zurück-Taste (siehe watch auf props.nr). + void pos } watch(() => [props.slug, props.version], () => { aktiv.value = ''; cache.clear(); laden() }, { immediate: true }) // Zurück-Taste oder getippte Adresse: zum Abschnitt springen, wenn er nicht schon aktiv ist