feat(reader): continuous reading mode, seamless infinite scroll, and end-of-chapter nav cards

This commit is contained in:
2026-10-06 09:33:06 +03:00
parent 4d40b13bce
commit 0d05da7b9e
4 changed files with 623 additions and 56 deletions
+20 -2
View File
@@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
<title>Notes — Персональный тренажер и словарь английского языка</title>
<meta name="description" content="Защищённый персональный тренажёр и словарь английского языка с интервальными повторениями SRS SM-2, контекстным поиском и озвучкой">
<link rel="stylesheet" href="/static/css/style.css?v=3.5">
<link rel="stylesheet" href="/static/css/style.css?v=3.6">
<!-- PWA meta and icons -->
<link rel="manifest" href="/manifest.json">
@@ -965,6 +965,24 @@
<button id="reader-settings-close-btn" class="popup-close-btn">✕</button>
</div>
<div class="reader-settings-body">
<!-- Reading Flow Mode -->
<div class="setting-row">
<span class="setting-label">Режим чтения</span>
<div class="setting-segmented-control" id="reader-mode-group">
<button type="button" class="seg-btn active" data-flow="chapters">📖 По главам</button>
<button type="button" class="seg-btn" data-flow="continuous">📜 Вся книга</button>
</div>
</div>
<!-- Autoload next chapter toggle (active in chapters mode) -->
<div class="setting-row" id="setting-autoload-row">
<span class="setting-label">Переход между главами</span>
<div class="setting-segmented-control" id="reader-autoload-group">
<button type="button" class="seg-btn active" data-autoload="true">⚡ Автоподгрузка</button>
<button type="button" class="seg-btn" data-autoload="false">🔘 По кнопке</button>
</div>
</div>
<!-- Font Family -->
<div class="setting-row">
<span class="setting-label">Шрифт</span>
@@ -1056,7 +1074,7 @@
<!-- Audio Element for native streaming -->
<audio id="global-audio-player" preload="none"></audio>
<script src="/static/js/app.js?v=3.5"></script>
<script src="/static/js/app.js?v=3.6"></script>
</body>
</html>