jQuery entfernen und Masonry.js auflösen #19
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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.