Spezifikation: Issue #19 – jQuery entfernen und Masonry.js auflösen
Repo:greggy/landingpage-haus-schleusingen Issue:#19 Komplexität:S (Small) – ~60-90 Min geschätzt Datum: 2026-05-13
1. Ausgangslage
Die Landingpage haus-schleusingen.html nutzt jQuery 3.7.1 (via CDN) für ~80 Zeilen JS-Code in js/haus-schleusingen.js. Masonry.js liegt als Datei (js/masonry.pkgd.min.js) im Repo, wird aber weder im HTML geladen noch im JS referenziert – das Galerie-Layout ist bereits komplett per CSS columns umgesetzt.
Dateien im Repo
Datei
Relevanz
haus-schleusingen.html
Hauptseite, lädt jQuery (Zeile 8) und haus-schleusingen.js (Zeile 552)
js/haus-schleusingen.js
103 Zeilen, enthält gesamten jQuery-Code
js/masonry.pkgd.min.js
Tot – wird nirgends referenziert, kann gelöscht werden
css/haus-schleusingen.css
.masonry-grid per CSS columns, keine Abhängigkeit zu jQuery
jQuery-Nutzung (5 Funktionsbereiche)
Navbar-Scroll (Zeile 2-6) – Klasse .scrolled bei scrollTop > 60
Hero-Animation (Zeile 8-11) – Klassen .visible/.loaded nach 200ms Delay
Scroll-Animationen (Zeile 13-26) – .fact und [data-animate] sichtbar machen
Akkordeon (Zeile 28-37) – Etage-Aufklapp-Menü mit slideUp/slideDown
Dieses Issue sollte VOR #18 gemergt werden, da #18 JS-Änderungen macht die auf der Vanilla-JS-Basis aufsetzen sollten.
🔗 **Blockiert:** #18 (Accessibility)
Dieses Issue sollte VOR #18 gemergt werden, da #18 JS-Änderungen macht die auf der Vanilla-JS-Basis aufsetzen sollten.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Problem
jQuery nur für minimale Funktionalität (~80 Zeilen). Masonry.js geladen aber nicht genutzt – 70KB unnötig.
Nutzen
Weniger JavaScript, schnellere Ladezeit, weniger Dependencies.
Technische Umsetzung
Aufwand: Mittel | Risiko: Niedrig | Empfehlung: Sinnvoll
Spezifikation: Issue #19 – jQuery entfernen und Masonry.js auflösen
Repo:
greggy/landingpage-haus-schleusingenIssue: #19
Komplexität: S (Small) – ~60-90 Min geschätzt
Datum: 2026-05-13
1. Ausgangslage
Die Landingpage
haus-schleusingen.htmlnutzt jQuery 3.7.1 (via CDN) für ~80 Zeilen JS-Code injs/haus-schleusingen.js. Masonry.js liegt als Datei (js/masonry.pkgd.min.js) im Repo, wird aber weder im HTML geladen noch im JS referenziert – das Galerie-Layout ist bereits komplett per CSS columns umgesetzt.Dateien im Repo
haus-schleusingen.htmlhaus-schleusingen.js(Zeile 552)js/haus-schleusingen.jsjs/masonry.pkgd.min.jscss/haus-schleusingen.css.masonry-gridper CSS columns, keine Abhängigkeit zu jQueryjQuery-Nutzung (5 Funktionsbereiche)
.scrolledbei scrollTop > 60.visible/.loadednach 200ms Delay.factund[data-animate]sichtbar machen2. Technische Spezifikation
Aufgabe 1: jQuery durch Vanilla JS ersetzen
Datei:
js/haus-schleusingen.js– komplett neu schreiben$(window).on("scroll", ...),$(this).scrollTop()window.addEventListener("scroll", ...),window.scrollY$("#heroContent").addClass(...)document.getElementById("heroContent").classList.add(...)$(".fact, [data-animate]").each(...),el.offset().topdocument.querySelectorAll(...),el.getBoundingClientRect().topslideUp()/slideDown()max-heightTransition +classList.toggle$(document).on("click", ...),$(this).data("img")el.addEventListener("click", ...),el.dataset.img$("#fname").val(),$("#contactForm").on("submit", ...)document.getElementById(...).value,form.addEventListener("submit", ...)Besonderheiten:
.floor-bodybekommtmax-height: 0; overflow: hidden; transition: max-height 0.3s ease;.floor-item.open .floor-bodybekommtmax-height: <passender Wert>;scrollHeightauslesen und alsmax-heightsetzen (für variable Höhen)scroll-behavior: smoothaufhtmlvia CSSIntersectionObserverstatt manuellem Scroll-Event (performanter)Aufgabe 2: jQuery
<script>-Tag entfernenDatei:
haus-schleusingen.html, Zeile 8Aufgabe 3: Masonry.js-Datei löschen
Löschen:
js/masonry.pkgd.min.jsWird nirgends geladen oder referenziert. Galerie nutzt bereits CSS columns.
Aufgabe 4: CSS ggf. anpassen
html { scroll-behavior: smooth; }hinzufügen (falls Anchor-Links genutzt werden)3. Akzeptanzkriterien
<script>-Tag aus HTML entferntjs/masonry.pkgd.min.jsgelöschtjs/haus-schleusingen.jsfunktioniert identisch mit Vanilla JS.scrolledbei Scroll).fact,[data-animate]erscheinen beim Scrollen)4. Risiko & Edge Cases
IntersectionObserverstatt scroll-Event für Animationenrequired-Attribute)data-imgAttributdataset.imgstatt$(this).data("img")beachten5. Datei-Änderungen (Übersicht)
haus-schleusingen.html<script>)js/haus-schleusingen.jsjs/masonry.pkgd.min.jscss/haus-schleusingen.css6. Pipeline-Empfehlung
Komplexität S → Phase 4 (Test & QA) kann übersprungen werden. Nach Implementierung → Code Review → Merge.
✅ Pipeline abgeschlossen – wartet auf Merge
PR: #21
Was wurde gemacht
js/haus-schleusingen.jskomplett in Vanilla JS neu geschrieben (~130 Zeilen)masonry.pkgd.min.jsgelöschtErgebnis
Bitte PR #21 mergen. Issue wird danach geschlossen.
🔗 Blockiert: #18 (Accessibility)
Dieses Issue sollte VOR #18 gemergt werden, da #18 JS-Änderungen macht die auf der Vanilla-JS-Basis aufsetzen sollten.