From 766233271420704376b191a1096cef0def74dd56 Mon Sep 17 00:00:00 2001 From: Claude Dev Date: Mon, 23 Mar 2026 22:24:20 +0100 Subject: [PATCH] Tutorial: Bubble-Breite passt sich dynamisch an Platz neben Modal an Bubble wird auf verfuegbaren Platz (min 260px) verkleinert und immer auf der Seite mit mehr Platz positioniert. Kein top-Fallback mehr der die Bubble aus dem Bildschirm schiebt. --- src/static/js/tutorial.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/static/js/tutorial.js b/src/static/js/tutorial.js index 383bd03..87279a0 100644 --- a/src/static/js/tutorial.js +++ b/src/static/js/tutorial.js @@ -1566,17 +1566,21 @@ const Tutorial = { if (isModalBubble) { // Fuer Modal-Steps: Platz links/rechts vom Modal pruefen - var modalEl = document.querySelector(step.target); - var mRect = modalEl ? modalEl.getBoundingClientRect() : rect; + var modalEl2 = document.querySelector(step.target); + var mRect = modalEl2 ? modalEl2.getBoundingClientRect() : rect; var spaceLeft = mRect.left; var spaceRight = vw - mRect.right; - if (spaceRight >= bw + gap) { + var bestSpace = Math.max(spaceLeft, spaceRight); + // Bubble-Breite an verfuegbaren Platz anpassen (min 260px) + var modalBw = Math.min(bw, bestSpace - gap - 8); + modalBw = Math.max(modalBw, 260); + bw = modalBw; + bubble.style.width = bw + 'px'; + // Seite mit mehr Platz waehlen + if (spaceRight >= spaceLeft) { pos = 'right'; - } else if (spaceLeft >= bw + gap) { - pos = 'left'; } else { - // Kein Platz links/rechts: Bubble ueber dem Feld im Modal platzieren - pos = 'top'; + pos = 'left'; } } else { if (pos === 'bottom' && (visBottom + gap + bubbleHeight > vh)) pos = 'top';