Revert "Buchansicht startet beim Laden immer oben; nur der Lesemodus setzt fort"

This reverts commit af935b8cbd.
This commit is contained in:
team3
2026-10-08 17:03:49 +02:00
parent af935b8cbd
commit 20f33c07bb

View File

@@ -19,6 +19,17 @@ 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'
@@ -75,9 +86,10 @@ async function laden() {
daten.value = d
await nextTick()
spy()
// 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
// 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)
}
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