Zitat von Webby
ich weiß das die Frage nach PHP war, aber ich hab hald gmein´t mit JScript get's doch voll easydann schreib ichs halt mal
Ganz so easy auch wieder nicht. Deine Variante funktioniert zwar, hat aber im Browser einen unangenehmen Nebeneffekt. Vorrausgesetzt man benutzt so einen JS-Code:
var ref = document.getElementById("meinBild");
ref.src = "neues_Bild.jpg";
ref.width = "100";
ref.height = "60"
Hat man nun statt einer statischen Bildnamenvergabe ein Array von Bildern und deren Abmessungen in JS zur Verfügung, so kann man diese in etwa so verwenden
var ref = document.getElementById("meineBilder");
ref.width = picDim[picIndex][0];
ref.height = picDim[picIndex][1];
ref.src = picName[picIndex];
Es geht auch nur darum, dass an einer Stelle - also im DIV "meineBilder" - das Bild geändert wird. Beim Wechsel der Bilder passiert es aber, dass das aktuelle Bild erst einen Resize erfährt und danach die Bilddatei gewechselt wird. Lokal bemerkt man dies nicht, aber online ist der Effekt sehr deutlich zu sehen.
Besser dabei wäre es den Browser nur die Bilddatei zu übergeben und das Resizing dem Browser zu überlassen. Das geht wunderbar und bringt diesen "Fehler"-Effekt nicht.
Der (bisher) einzige Browser der das nicht schafft ist der Safari. Dieser benötigt zwingend die Bildgrößenangaben, da er sonst das Bild auf 100% der verfügbaren Breite/Höhe skaliert. Das sieht dann teilweise noch schlimmer aus.
Deshalb muss die JS-Routine also noch wie folgt erweitert werden.
var ref = document.getElementById("meineBilder");
if (navigator.userAgent.indexOf("Safari") > 0) {
ref.width = picDim[picIndex][0];
ref.height = picDim[picIndex][1];
}
ref.src = picName[picIndex];
Diese Erfahrung habe ich gerade gestern erlangt und musste drauf reagieren. Deshalb ist dieses Script auch wirklich als "frisch" zu bezeichnen. 