Buchansicht startet beim Laden immer oben; nur der Lesemodus setzt fort
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user