From d0b79a2820083311230fe82e406a4a4f3c252363 Mon Sep 17 00:00:00 2001 From: Thomas Bartelt Date: Sun, 27 Sep 2026 10:02:47 +0200 Subject: [PATCH] fix(warenkorb-neu, kasse-neu): Scroll nicht wiederherstellen, wenn der Korb leer wurde (Knopf lag unter dem fixierten Kopf); sticky Kaesten unter den 152px-Kopf (top 168px) --- .../theme2/templates/content_cash_desk_neu.tpl | 5 +++-- .../theme2/templates/content_shoppingcart_neu.tpl | 14 +++++++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/web/intelectra_shop/themes/theme2/templates/content_cash_desk_neu.tpl b/web/intelectra_shop/themes/theme2/templates/content_cash_desk_neu.tpl index 6352594..b0cc7ca 100644 --- a/web/intelectra_shop/themes/theme2/templates/content_cash_desk_neu.tpl +++ b/web/intelectra_shop/themes/theme2/templates/content_cash_desk_neu.tpl @@ -423,8 +423,9 @@ .ck-grid { display: flex; gap: 20px; align-items: flex-start; } .ck-main { flex: 1 1 auto; min-width: 0; } -/* top = Hoehe des klebenden Theme-Kopfes (.firststicky, 89px) + Luft, sonst schiebt sich der Kasten unters Logo (Tom, 18.09.) */ -.ck-side { flex: 0 0 280px; position: sticky; top: 105px; } +/* top = Hoehe des fixierten Theme-Kopfes (#header_sticky.fixed, 152px) + Luft. Der Kopf ist unten + ausgeblendet, faengt dort aber Klicks ab -- darunter darf nichts Klickbares liegen (Tom, 18./27.09.) */ +.ck-side { flex: 0 0 280px; position: sticky; top: 168px; } .ck-sec { border: 1px solid #e3e3e3; border-radius: 8px; padding: 16px 18px; margin-bottom: 14px; background: #fff; } .ck-h { display: flex; align-items: center; gap: 10px; font-size: 17px; font-weight: 700; margin: 0 0 12px; } diff --git a/web/intelectra_shop/themes/theme2/templates/content_shoppingcart_neu.tpl b/web/intelectra_shop/themes/theme2/templates/content_shoppingcart_neu.tpl index 8029801..3a79aad 100644 --- a/web/intelectra_shop/themes/theme2/templates/content_shoppingcart_neu.tpl +++ b/web/intelectra_shop/themes/theme2/templates/content_shoppingcart_neu.tpl @@ -130,8 +130,9 @@ .wk { container-type: inline-size; } .wk-grid { display: flex; gap: 20px; align-items: flex-start; } .wk-list { flex: 1 1 auto; min-width: 0; } -/* top = Hoehe des klebenden Theme-Kopfes (.firststicky, 89px) + Luft, sonst schiebt sich der Kasten unters Logo (Tom, 18.09.) */ -.wk-side { flex: 0 0 260px; position: sticky; top: 105px; } +/* top = Hoehe des fixierten Theme-Kopfes (#header_sticky.fixed, 152px) + Luft. Der Kopf ist unten + ausgeblendet, faengt dort aber Klicks ab -- darunter darf nichts Klickbares liegen (Tom, 18./27.09.) */ +.wk-side { flex: 0 0 260px; position: sticky; top: 168px; } .wk-box { background: #fafafa; border: 1px solid #e3e3e3; border-radius: 8px; padding: 16px; } /* Gewaehrleistungs-Label ueber dem Kasten: volle Breite der Spalte, Hoehe folgt dem Seitenverhaeltnis (Tom, 18.09.), Klick oeffnet das Label gross in neuem Tab */ @@ -245,7 +246,14 @@ $(document).ready(function() { } try { var y = sessionStorage.getItem('wk_scroll'); - if (y !== null) { sessionStorage.removeItem('wk_scroll'); window.scrollTo(0, parseInt(y) || 0); } + if (y !== null) { + sessionStorage.removeItem('wk_scroll'); + // Nur wiederherstellen, solange der Korb noch Positionen hat. Wird die letzte entfernt, ist die + // Seite kurz: die alte Scrollposition klemmt dann am Seitenende und schiebt den Knopf + // "Weiter einkaufen" unter den fixierten Theme-Kopf, dessen unterer Rand durchsichtig ist, + // aber Klicks schluckt (Tom, 27.09.). + if ($('#cart_form').length) { window.scrollTo(0, parseInt(y) || 0); } else { window.scrollTo(0, 0); } + } } catch (e) {} // Getippte Menge: beim Verlassen des Feldes speichern -- aber erst nach einer kurzen Wartezeit. // Sonst gewinnt das Auto-Speichern gegen den Klick, der das Feld verlassen hat ("Weiter einkaufen",