Ich möchte auf meiner Seite eine Funktion programmieren, welches den Benutzer erlaubt ein verkleinertes Bild, beim anklicken größer darzustellen. Dabei sollte das vergrößerte Bild zentriert sein und der Hintergrund leicht abgedunkelt ohne eine neue Seite zu laden. Ich bin noch am Anfang und möchte mich lernen wie ich in Javascript Funktionen schreibe. Ich bin dabei auf ein Code Snippet gestoßen, das zwar nicht meine Anforderungen gerecht wird, aber gut ist, um ein Verständnis zu bekommen wie man Funktionen definiert. Ich hoffe jemand kann drüber schauen und gucken ob ich es richtig definiert habe.
Code:
<script> <!--
var now = 300; // Wird geladen bevor die Funktion aufgerufen wird
var savewidth = 0;
function zoom(Bild)
{
if (Bild.width > now || savewidth > now) // Falls (Bild Breite ist breiter als 300px
{ // oder gespeicherte Breite ist breiter als 300px)
if (Bild.width == now) // Falls beide Werte gleich sind
{
Bild.width = savewidth; // Bildbreite ist gespeicherte Breite
}
else // sonst
{
savewidth = Bild.width; // gespeicherte Breite ist BildBreite
Bild.style.cursor = "pointer"; // cursor
Bild.width = now; // Bildbreite ist 300px
}
}
}
//--> </script>
<img onClick="zoom(this)" onLoad="zoom(this)" src="pics/R3.png" title="Zum Vergrößern/Verkleinern anklicken">
Aber ich frage mich warum die variable now, Einfluss auf das verkleinerte Bild hat, wenn doch die Funktion nicht geladen wurde. Es hat ja nur einen Wert von 300, also 300 px. Wie soll der img Tag wissen, das es eine Breite von 300px haben soll, wenn da irgendwie keine Verknüpfung besteht. Die Variable savewidth hat den Wert 0. Soll das heißen die Originalgröße vom Bild?
Also ich verstehe das so: das zweite if Konstrukt mach das kleine Bild groß, ab dem else Konstrukt macht es das große Bild wieder klein.
Und die Funktion macht seine Aufgaben, wenn Bild.width breiter ist als das now und savewidth. Also muss Bild.with wissen, wie viel Pixel das Originalbild hat, aber woher?
Resident Evil 6 erscheint in...
Heute, 15:21 in gulli:news