Oliver: Headbild an alle Bildschirmauflösungen anpassen

Beitrag lesen

Hi Sven,

erst mal sorry an den, der den Thread eröffnet hat, aber das interessiert mich nun wieder brennend.

Wenn du als Faktor mal was krummes nimmst, z.B. 45% oder 89%, dann sieht dein Vorschlag genauso grottig aus.

Also, ich hab unten ein Beispiel angefügt, das das gleiche mit einem Faktor von 87% - also was Krummes - macht, ohne das HTML dabei zu "zerstören". Bei mir findet der Pixelversatz nicht statt, das Bild steht da wie eine 1.
Hast Du eine Idee, warum das bei mir geht, bei Dir aber grottig aussieht?

Und schon zerstört sich die Seite selbst, weil sie onload durch den Bildercode ersetzt wird...

sicher, hatte ich ja gesagt, s.o.

Btw, der Vorschlag mit den "100%" ist ja nun auch gar nicht schlecht, oder? Ist zumindest wesentlich einfacher.

Grüsse
Oliver

Beispiel:

<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> Auto-Resize Beispiel </title>
<script type="text/javascript">

// das ist für den IE, bei NN heissen
// die werte bischen anders, das wird
// aber in Stefans Referenz super beschrieben

function setPic(){

// Name des Bildes
 imgFileName = "test.jpg";

// Orginalgrösse
 imgWidth = 800;
 imgHeight = 600;

// Anteil des Bildes an der Breite
 // der darstellbaren Fläche im Fenster
 // aktuell: 87%
 imgPart = .87;

// Seitenverhältnis des Bildes
 imgRatio = imgHeight/imgWidth;

// Grösse der Darstellbaren Fläche im Dokument
 docWidth = parseInt(document.body.clientWidth);
 docHeight = parseInt(document.body.clientHeight);

// Berechnen der notwendigen Bildbreite
 // die '-25' sind für den Scrollbalken im IE
 if(imgWidth > (docWidth * imgPart) - 25) imgWidth = parseInt((docWidth * imgPart) - 25);

// Berechnen der Bildhöhe
 imgHeight = parseInt(imgWidth * imgRatio);

// HTML generieren
 html = "<center>";
 html += imgWidth + " / " + imgHeight + "<br>";
 html += "<img src='" + imgFileName + "' width='" + imgWidth + "' height='" + imgHeight + "'>";
 html += "<center>";

// HTML ins Dokument schreiben
 document.getElementById("nix").innerHTML = html;
}

</script>
</head>

<body onLoad="setPic()" onResize="setPic()">
<div id="nix"> </div>
</body>
</html>