Salute zusammen,
noch eine Frage. Ich lade mit JavaScript neue Bilder unterschiedlicher Größe in ein , in welchem die Größe „CLogoHmax“ (height) und „CLogoWmax“ (width) nicht überschritten werden dürfen. Die Proportionen sollen natürlich erhalten bleiben.
Ich habe hierfür folgende Zeilen (in einer for-Schleife mit Index i):
newCLogo = new Image();
newCLogo.src = CLogoPath+Sammlung[i]["CLogo"];
document.getElementsByName('STCLogo')[i].style.width = 'auto'; // Zurücksetzen von Abmessungen voriger Grafik auf 'auto'
document.getElementsByName('STCLogo')[i].style.height= 'auto'; // Zurücksetzen von Abmessungen voriger Grafik auf 'auto'
if (newCLogo.width / CLogoWmax \> newCLogo.height / CLogoHmax) {
document.getElementsByName('STCLogo')[i].style.width = CLogoWmax;
} else {
document.getElementsByName('STCLogo')[i].style.height = CLogoHmax;
};
document.getElementsByName('STCLogo')[i].src = newCLogo.src;
(Alle meine Grafiken sind größer als die Maximalwerte). Das Zurücksetzen von width und height auf ‚auto‘ ist nötig, weil die Änderung von nur einem Dimensionswert sonst nicht die gewünschte proportionale Verkleinerung erzeugt. Die if-Abfrage prüft, ob height oder width der Grafik proportional größer ist und reduziert den höheren Wert im img. Es funktioniert fast immer, aber manchmal eben auch nicht: Manche Grafiken werden beim ersten Laden nur durch die else-Bedingung in ihrer Größe verändert (sind also zu breit). Beim nächsten Laden derselben Grafik klappts dann.
Was könnte hier falsch sein?
Vielen Dank für Eure Ideen und einen schönen Abend…
-Rob.