Ein freundliches "Hallo" in die Runde!
Wegen akuter Verzweiflung, ganz frisch dazugestoßen und direkt ein Überfall geplant - Anfängerprobleme
Ich versuche mich gerade an einer Künstlerwebseite, die mehrere Galerien beinhaltet. Die Bilder sollen groß an- und durchgeklickt werden können.
Leider sind die meisten Tutorials&Beiträge ziemlich alt und jede Seite schreibt etwas anderes. Ich hatte mich an w3schools gehalten, weil es dort viele detaillierte Anleitungen gibt. Dort integrieren sie aber praktisch alle "onclick"-Events im HTML. Klappte zwar gut, hatte aber danach gelesen, dass dies ganz schlechtes JS sei.
Nun versuche ich also alles umzuschreiben und hänge schon bei den Bildern fest.
Wenn ich die var in die Funktion einsetze, können weder src noch alt gefunden werden und das aufgehende Fenster bleibt leer. Als inline klappte es vorher mit "element.src/.alt".
Hier erstmal der Code (der Einfachheit halber nur die erste Galerie mit drei Beispielen reingeschrieben. In Wahrheit ist es eine ganze Flut von Bildern):
<div class="tab">
<button class="tablinks" onclick="openTab(event, 'oel1')">Galerie 1</button>
<button class="tablinks" onclick="openTab(event, 'oel2')">Galerie 2</button>
<button class="tablinks" onclick="openTab(event, 'acryl')">Galerie 3</button>
</div>
<div id="oel1" class="tabcontent">
<div class="grid">
<img src="bilder/oel_1/bild1.jpg"
alt="Beispiel"/>
<img src="bilder/oel_1/bild2.jpg"
alt="Beispiel"/>
<img src="bilder/oel_1/bild3.jpg"
alt="Beispiel"/>
</div>
.
.
.
<!-- Modal for full size images on click-->
<div id="fullsize" class="modal">
<img id="pic" class="bigImg">
<p id="caption"></p>
</div>
Alles anzeigen
var bilder = document.getElementsByClassName("bild");
for (var x = 0; x < bilder.length; x++) {
bilder[x].addEventListener("click", gross);
}
function gross() {
document.getElementById("pic").src = bilder[x].src; //<- Nicht gefunden
document.getElementById("fullsize").style.display = "block";
let captionText = document.getElementById("caption");
captionText.innerHTML = bilder[x].alt; //<- Nicht gefunden
}
//Modal
document.getElementById("fullsize").addEventListener("click", function() {
document.getElementById("fullsize").style.display="none";
} )
Alles anzeigen
Außerdem scheitere ich auch gänzlich bei dem Versuch, daraus eine Slideshow zu machen. Durch die letzte Funktion bekomme ich das große Bild ja nur wieder zu.
Hatte schon versucht mehrere Beispiele von w3schools in unterschiedlichsten Weisen einzufügen und zu ändern, aber erfolglos.
Falls mir auch da jemand auf die Sprünge helfen könnte, wären meine Nerven unendlich dankbar!
P.s.: Ich möchte ganz bewusst kein Lightbox, etc. einbinden, da es mir darum geht JS richtig zu lernen und zu verstehen. Und am liebsten so, wie man es am aktuellsten macht.
Danke schonmal im Vorraus!