Reset-Knopf: Leseposition beider Ansichten auf den Anfang

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
team3
2026-10-09 18:04:53 +02:00
parent 9945b20469
commit ade75bca71
2 changed files with 16 additions and 1 deletions

View File

@@ -52,6 +52,14 @@ function lesemodusStart() {
emit('tab', 'lesen')
document.documentElement.requestFullscreen?.().catch(() => {})
}
// Leseposition beider Ansichten auf den Anfang zurücksetzen (geräteübergreifend)
async function zuruecksetzen() {
if (!window.confirm('Leseposition auf den Anfang zurücksetzen?')) return
await api.positionSetzen(props.slug, props.version, { abschnitt: 'vorwort', lesemodus: 'vorwort', zuletzt: 'lesen' }).catch(() => {})
aktiv.value = 'vorwort'
lese.value?.scrollTo({ top: 0 })
navAuf.value = false
}
function lesemodusEnde() {
emit('tab', 'buch')
if (document.fullscreenElement) document.exitFullscreen().catch(() => {})
@@ -175,6 +183,7 @@ onUnmounted(() => window.removeEventListener('keydown', taste))
<div class="werkzeuge">
<button class="klein" title="Lesemodus: Abschnitt für Abschnitt" @click="lesemodusStart" :disabled="!abschnitte.length">Lesen ▶</button>
<a class="knopf klein sekundaer" title="Kernerkenntnisse aller Kapitel zum Auffrischen" :href="api.kernUrl(slug, version)" target="_blank">Kern</a>
<button class="klein sekundaer" title="Leseposition auf den Anfang zurücksetzen" @click="zuruecksetzen">Reset</button>
<a class="knopf klein sekundaer" title="Als Markdown-Datei herunterladen" :href="api.buchMdUrl(slug, version)" download>MD</a>
<a v-if="daten?.pdf" class="knopf klein sekundaer" title="Als PDF herunterladen" :href="api.pdfUrl(slug, version)" download>PDF</a>
</div>
@@ -202,6 +211,7 @@ onUnmounted(() => window.removeEventListener('keydown', taste))
<button class="sekundaer klein" @click="navAuf = !navAuf">☰ Inhalt</button>
<button class="klein" @click="lesemodusStart" :disabled="!abschnitte.length">Lesen ▶</button>
<a class="knopf klein sekundaer" :href="api.kernUrl(slug, version)" target="_blank">Kern</a>
<button class="klein sekundaer" title="Leseposition auf den Anfang zurücksetzen" @click="zuruecksetzen">Reset</button>
<a class="knopf klein sekundaer" :href="api.buchMdUrl(slug, version)" download>MD</a>
<a v-if="daten?.pdf" class="knopf klein sekundaer" :href="api.pdfUrl(slug, version)" download>PDF</a>
</div>

View File

@@ -47,6 +47,11 @@ function html(s) {
}
function vor() { if (pos.value < screens.value.length - 1) pos.value++ }
// Von vorn: auch die Buchansicht zurücksetzen, sonst zöge sie den Lesemodus wieder nach hinten
async function vonVorn() {
await api.positionSetzen(props.slug, props.version, { abschnitt: 'vorwort', lesemodus: 'vorwort', zuletzt: 'lesen' }).catch(() => {})
pos.value = 0
}
function zurueck() { if (pos.value > 0) pos.value-- }
let merkTimer = null
watch(pos, (p) => {
@@ -128,7 +133,7 @@ onUnmounted(() => window.removeEventListener('keydown', taste))
<section v-else class="lm-screen ende">
<h1>Fertig gelesen</h1>
<p class="intro">Alle {{ gesamt }} Seiten von „{{ daten.titel }}“.</p>
<button class="sekundaer" style="margin-top: 16px" @click="pos = 0">Von vorn</button>
<button class="sekundaer" style="margin-top: 16px" @click="vonVorn">Von vorn</button>
</section>
</main>
<footer class="lm-fuss">