Fix: Swipe-Begrenzung — kein Überziehen über erste/letzte Welt, SW by-v649

This commit is contained in:
rene 2026-05-03 11:04:24 +02:00
parent bb8ceaf114
commit 87d3006aa7
4 changed files with 10 additions and 8 deletions

View file

@ -93,9 +93,9 @@
</script> </script>
<!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung --> <!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung -->
<link rel="stylesheet" href="/css/design-system.css?v=648"> <link rel="stylesheet" href="/css/design-system.css?v=649">
<link rel="stylesheet" href="/css/layout.css?v=648"> <link rel="stylesheet" href="/css/layout.css?v=649">
<link rel="stylesheet" href="/css/components.css?v=648"> <link rel="stylesheet" href="/css/components.css?v=649">
</head> </head>
<body> <body>
@ -565,7 +565,7 @@
<script src="/js/api.js?v=94"></script> <script src="/js/api.js?v=94"></script>
<script src="/js/ui.js?v=94"></script> <script src="/js/ui.js?v=94"></script>
<script src="/js/app.js?v=94"></script> <script src="/js/app.js?v=94"></script>
<script src="/js/worlds.js?v=648"></script> <script src="/js/worlds.js?v=649"></script>
<!-- Feature-Seiten werden lazy geladen --> <!-- Feature-Seiten werden lazy geladen -->

View file

@ -3,7 +3,7 @@
Router, State-Management, Navigation, Initialisierung. Router, State-Management, Navigation, Initialisierung.
============================================================ */ ============================================================ */
const APP_VER = '648'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VER = '649'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
const APP_VERSION = '1.2.1'; // ← semantische Version, wird bei make release gesetzt const APP_VERSION = '1.2.1'; // ← semantische Version, wird bei make release gesetzt
const IS_STAGING = location.hostname === 'staging.banyaro.app'; const IS_STAGING = location.hostname === 'staging.banyaro.app';

View file

@ -109,9 +109,11 @@ window.Worlds = (() => {
if (_t.vert === null) _t.vert = Math.abs(dy) > Math.abs(dx) + 4; if (_t.vert === null) _t.vert = Math.abs(dy) > Math.abs(dx) + 4;
if (_t.vert) return; if (_t.vert) return;
e.preventDefault(); e.preventDefault();
_t.moved = dx; // Nicht über erste/letzte Seite hinausziehen
const cdx = _cur === 0 ? Math.min(0, dx) : _cur === 2 ? Math.max(0, dx) : dx;
_t.moved = cdx;
const base = -_cur * (100 / 3); const base = -_cur * (100 / 3);
track.style.transform = `translateX(calc(${base}% + ${dx}px))`; track.style.transform = `translateX(calc(${base}% + ${cdx}px))`;
}, { passive: false }); }, { passive: false });
track.addEventListener('touchend', () => { track.addEventListener('touchend', () => {

View file

@ -3,7 +3,7 @@
Offline-Cache + Push Notifications + Tile-Cache Offline-Cache + Push Notifications + Tile-Cache
============================================================ */ ============================================================ */
const CACHE_VERSION = 'by-v648'; const CACHE_VERSION = 'by-v649';
const CACHE_STATIC = `${CACHE_VERSION}-static`; const CACHE_STATIC = `${CACHE_VERSION}-static`;
const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten
const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache