Tutorial Karte: Z-Index-Fix, Chat-Button verstecken, Tile-Rendering
- Fullscreen-Overlay z-index auf 9998 (ueber Chat-Button 9999 -> Chat wird mit display:none versteckt waehrend Karten-Step) - Map-Container bekommt explizite flex:1 + min-height:400px damit Leaflet die Container-Groesse korrekt erkennt - Mehrere invalidateSize-Aufrufe (100/300/600ms) vor dem Zoom - flyTo erst nach 1200ms (Tiles muessen erst laden bei Zoom 5) - Bubble target auf .map-fullscreen-header statt ganzen Overlay - fsContainer Styles werden beim Schliessen zurueckgesetzt Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
@@ -764,7 +764,7 @@
|
|||||||
<script src="/static/js/api_network.js?v=20260316a"></script>
|
<script src="/static/js/api_network.js?v=20260316a"></script>
|
||||||
<script src="/static/js/network-graph.js?v=20260316a"></script>
|
<script src="/static/js/network-graph.js?v=20260316a"></script>
|
||||||
<script src="/static/js/app_network.js?v=20260316a"></script>
|
<script src="/static/js/app_network.js?v=20260316a"></script>
|
||||||
<script src="/static/js/tutorial.js?v=20260316o"></script>
|
<script src="/static/js/tutorial.js?v=20260316p"></script>
|
||||||
<script src="/static/js/chat.js?v=20260316f"></script>
|
<script src="/static/js/chat.js?v=20260316f"></script>
|
||||||
<script>document.addEventListener("DOMContentLoaded",function(){Chat.init();Tutorial.init()});</script>
|
<script>document.addEventListener("DOMContentLoaded",function(){Chat.init();Tutorial.init()});</script>
|
||||||
|
|
||||||
|
|||||||
@@ -933,7 +933,7 @@ const Tutorial = {
|
|||||||
// 17 - Karte (Vollbild)
|
// 17 - Karte (Vollbild)
|
||||||
{
|
{
|
||||||
id: 'karte',
|
id: 'karte',
|
||||||
target: '#map-fullscreen-overlay',
|
target: '.map-fullscreen-header',
|
||||||
title: 'Geografische Verteilung',
|
title: 'Geografische Verteilung',
|
||||||
text: 'Die Karte zeigt per Geoparsing automatisch erkannte Orte aus den Quellen.<br><br>'
|
text: 'Die Karte zeigt per Geoparsing automatisch erkannte Orte aus den Quellen.<br><br>'
|
||||||
+ '<strong style="color:#EF4444;">●</strong> <strong>Hauptereignisort</strong> - Zentraler Ort des Geschehens<br>'
|
+ '<strong style="color:#EF4444;">●</strong> <strong>Hauptereignisort</strong> - Zentraler Ort des Geschehens<br>'
|
||||||
@@ -946,10 +946,16 @@ const Tutorial = {
|
|||||||
position: 'left',
|
position: 'left',
|
||||||
disableNav: true,
|
disableNav: true,
|
||||||
onEnter: function() {
|
onEnter: function() {
|
||||||
|
// Chat-Button verstecken im Vollbild
|
||||||
|
var chatBtn = document.getElementById('chat-toggle-btn');
|
||||||
|
if (chatBtn) chatBtn.style.display = 'none';
|
||||||
Tutorial._openDemoMapFullscreen();
|
Tutorial._openDemoMapFullscreen();
|
||||||
},
|
},
|
||||||
onExit: function() {
|
onExit: function() {
|
||||||
Tutorial._closeDemoMapFullscreen();
|
Tutorial._closeDemoMapFullscreen();
|
||||||
|
// Chat-Button wieder anzeigen
|
||||||
|
var chatBtn = document.getElementById('chat-toggle-btn');
|
||||||
|
if (chatBtn) chatBtn.style.display = '';
|
||||||
Tutorial._clearSubHighlights();
|
Tutorial._clearSubHighlights();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -1487,7 +1493,7 @@ const Tutorial = {
|
|||||||
|
|
||||||
// Overlay anzeigen
|
// Overlay anzeigen
|
||||||
overlay.classList.add('active');
|
overlay.classList.add('active');
|
||||||
overlay.style.zIndex = '9002';
|
overlay.style.zIndex = '9998';
|
||||||
if (fsStats) fsStats.textContent = '3 Orte / 9 Artikel';
|
if (fsStats) fsStats.textContent = '3 Orte / 9 Artikel';
|
||||||
|
|
||||||
// Alte Demo-Map entfernen
|
// Alte Demo-Map entfernen
|
||||||
@@ -1495,9 +1501,12 @@ const Tutorial = {
|
|||||||
|
|
||||||
// Map im Fullscreen-Container
|
// Map im Fullscreen-Container
|
||||||
fsContainer.innerHTML = '';
|
fsContainer.innerHTML = '';
|
||||||
|
// Explizite Hoehe setzen damit Leaflet korrekt rendert
|
||||||
|
fsContainer.style.flex = '1';
|
||||||
|
fsContainer.style.minHeight = '0';
|
||||||
var mapDiv = document.createElement('div');
|
var mapDiv = document.createElement('div');
|
||||||
mapDiv.id = 'tutorial-fs-map';
|
mapDiv.id = 'tutorial-fs-map';
|
||||||
mapDiv.style.cssText = 'width:100%;height:100%;';
|
mapDiv.style.cssText = 'width:100%;height:100%;min-height:400px;';
|
||||||
fsContainer.appendChild(mapDiv);
|
fsContainer.appendChild(mapDiv);
|
||||||
|
|
||||||
var isDark = !document.documentElement.getAttribute('data-theme') || document.documentElement.getAttribute('data-theme') !== 'light';
|
var isDark = !document.documentElement.getAttribute('data-theme') || document.documentElement.getAttribute('data-theme') !== 'light';
|
||||||
@@ -1565,17 +1574,21 @@ const Tutorial = {
|
|||||||
|
|
||||||
// Resize + animierter Zoom auf Hamburg
|
// Resize + animierter Zoom auf Hamburg
|
||||||
var map = this._demoMap;
|
var map = this._demoMap;
|
||||||
|
// Mehrere invalidateSize-Aufrufe damit Leaflet die Container-Groesse erkennt
|
||||||
|
[100, 300, 600].forEach(function(delay) {
|
||||||
|
setTimeout(function() { if (map) map.invalidateSize(); }, delay);
|
||||||
|
});
|
||||||
|
// Warten bis Tiles geladen, dann sanft auf Hamburg zoomen
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
if (map) map.invalidateSize();
|
if (map) {
|
||||||
// Sanft auf Hamburg zoomen
|
map.invalidateSize();
|
||||||
setTimeout(function() {
|
map.flyTo([53.54, 9.97], 13, { duration: 2.5 });
|
||||||
if (map) map.flyTo([53.54, 9.97], 13, { duration: 2.5 });
|
}
|
||||||
// Nach Zoom: Demo starten
|
// Nach Zoom: Demo starten
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
self._simulateMapDemo();
|
self._simulateMapDemo();
|
||||||
}, 3000);
|
}, 3200);
|
||||||
}, 500);
|
}, 1200);
|
||||||
}, 200);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_closeDemoMapFullscreen() {
|
_closeDemoMapFullscreen() {
|
||||||
@@ -1585,7 +1598,11 @@ const Tutorial = {
|
|||||||
overlay.style.zIndex = '';
|
overlay.style.zIndex = '';
|
||||||
}
|
}
|
||||||
var fsContainer = document.getElementById('map-fullscreen-container');
|
var fsContainer = document.getElementById('map-fullscreen-container');
|
||||||
if (fsContainer) fsContainer.innerHTML = '';
|
if (fsContainer) {
|
||||||
|
fsContainer.innerHTML = '';
|
||||||
|
fsContainer.style.flex = '';
|
||||||
|
fsContainer.style.minHeight = '';
|
||||||
|
}
|
||||||
this._destroyDemoMap();
|
this._destroyDemoMap();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
In neuem Issue referenzieren
Einen Benutzer sperren