Einzelnen Beitrag anzeigen
Alt 03.03.2007, 13:35   #6 (permalink)
mondrian
Extrem Tweaker
 
Benutzerbild von mondrian
 

Registriert seit: 11.11.2005
Beiträge: 1.638

mondrian ist ein Lichtblickmondrian ist ein Lichtblickmondrian ist ein Lichtblickmondrian ist ein Lichtblickmondrian ist ein Lichtblick

Standard AW: Bildergalerie-"Software" oder Lösung gesucht

Zunächst muß die Fenstergröße ermittelt werden, also geht es nicht ohne den
clientseitigen Einsatz von JavaScript.

Die ermittelten Werte müssen dann an den Server übergeben werden, damit sie im
PHP Script berücksichtigt werden können.

Also ein reload oder location.replace der betr. Seite per JavaScript mit angehängten
Werten. Prinzipiell so:
Code:
echo "<script language=\"JavaScript\">location.replace(this.href+\"?width=\"+
window.innerWidth+\"&height=\"+window.innerHeight );</script>"
Da aber sowieso JavaScript benötigt wird, zudem das betr. Bild auch geladen werden
soll, hab ich mal was nur mit JavaScript geschrieben:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15"><!-- kl -->
<title>Bildgrösse anpassen</title>
<style type="text/css">
div{text-align:center;}
img {margin:auto;}
</style>
<script type="text/javascript">
document.write("<style type=\"text/css\">img{visibility:hidden}<\/style>");
var wiw; var wih; var imw; var imh;
function skal(){
imw=document.images[0].width;
imh=document.images[0].height;
if (window.innerWidth)wiw=window.innerWidth;
else if (document.documentElement && document.documentElement.clientWidth != 0)
wiw= document.documentElement.clientWidth;
else if (document.body)wiw= document.body.clientWidth;
if (window.innerHeight)wih=window.innerHeight;
else if (document.documentElement && document.documentElement.clientHeight != 0)
wih= document.documentElement.clientHeight;
else if (document.body)wih= document.body.clientHeight;
if ((wih/wiw)>(imh/imw)) document.images[0].width= wiw/1.5;
else document.images[0].height= wih/1.5;
document.images[0].style.visibility="visible";
}
</script>
</head>
<body>
<h1>Bild skaliert</h1>
<div>
<img src="muster.png" onload="skal()" alt="">
</div>
</body>
Beim ersten Test mit FF2, IE7 und Opera9 sah es schonmal gut aus. Die
entspr. Berechnungen und Vergleiche sind in PHP mit getimagesize eigentlich gleich,
u.U. ist bei PHP der Seitenaufbau gleichmäßiger, wenn die Bildgröße vorher schon
bekannt ist. Dafür muß zumindest einmal die Fenstergröße bestimmt werden, und
dann immer übergeben werden, oder vielleicht noch was mit Cookies.
mondrian ist offline   Mit Zitat antworten
Für diesen Beitrag bedankt sich:
F!5H (29.05.2007)