Bildergröße gemäß Bildschirmauflösung laden
coldarchon
- javascript
0 Vimes0 TorstenA0 coldarchon0 TorstenA
In meiner Seite existiert in einem Frame ein Rahmen, der die Hauptseite vom Menü abgrenzt und durch ein Bild dargestellt wird. Damit für jede Auflösung die richtige Größe benutzt wird habe ich dies per Script definiert. Allerdings habe ich keine Lösung für einen User der keine Scripte zulässt. Wie kann ich die Nicht-Script-Version verschwinden lassen?
<img src="rahmen.png">
<script = javascript>
bwidth=screen.width;
If (bwidth = 1024)
{var bild = new Image();
bild.src = "rahmen1024.png";}
</script>
Moin
<img src="rahmen.png">
<script = javascript>
bwidth=screen.width;
If (bwidth = 1024)
{var bild = new Image();
bild.src = "rahmen1024.png";}
</script>
FUNKTIONIERT dein Script überhaupt, wenn man die Scriptausführung zuläßt?
1. Werden Skripte ganz anders definiert ( und es fehlen bsw. die "" und die typ-Angabe)
2. Selbst wenn das Skript läuft, ändert es nicht das angezeigte Bild
Außerdem wirst du in den seltensten Fällen eine Screen-Breite von 1024 bekommen.
Ohne ein Script, das clientseitig läuft, wirst du afaik nicht herausfinden können, welche Anzeigegröße eben dieser Client hat.
Bastel dir doch lieber ein Bild, das beliebig wiederholt werden kann, oder dass groß genug ist, um jede Auflösung abzudecken.
so long.
Hallo,
In meiner Seite existiert in einem Frame ein Rahmen, der die Hauptseite vom Menü abgrenzt und durch ein Bild dargestellt wird. Damit für jede Auflösung die richtige Größe benutzt wird habe ich dies per Script definiert. Allerdings habe ich keine Lösung für einen User der keine Scripte zulässt. Wie kann ich die Nicht-Script-Version verschwinden lassen?
Schreibe dein img-Element dynamisch in die Seite, indem du an der entsprechenden Stelle innerhalb des Bodys einen JS-Bereich einfügst. Zusätzlich definierst du im noscript-Tag das, was JS-lose Besucher angezeigt bekommen sollen, also z.B. einen Rahmen oder ein Default-Bild. Das Ganze könnte etwa so aussehen:
<body>
<!-- diverser HTML-Code -->
<script type="text/javascript">
<!--
var breite = screen.width;
var bild = "rahmen" + breite + ".png"
document.write("<img src="" + bild + "" alt="">");
//-->
</script>
<noscript>
<img src="rahmen_standard.png" alt="">
</noscript>
<!-- diverser HTML-Code -->
</body>
Alternativ dazu wäre über die Verwendung von availWidth nachzudenken. Den dir dann zur Verfügung stehenden Wert könntest du in ein width-Attribut packen:
var breite = screen.availWidth;
document.write("<img src="rahmen.png" style="width:" + breite + "px;height:10px" alt="">");
Oder vielleicht kombinierst du beide Varianten.
Hoffe es hilft
Torsten
Schreibe dein img-Element dynamisch in die Seite, indem du an der entsprechenden Stelle innerhalb des Bodys einen JS-Bereich einfügst. Zusätzlich definierst du im noscript-Tag das, was JS-lose Besucher angezeigt bekommen sollen, also z.B. einen Rahmen oder ein Default-Bild. Das Ganze könnte etwa so aussehen:
<noscript>
<img src="rahmen_standard.png" alt="">
</noscript>
<!-- diverser HTML-Code -->
</body>
Hoffe es hilft
Torsten
und genau der noscript Bereich ist bei mir der Knackpunkt, er wird überhaupt nicht beachtet, deswegen suche ich nach einer Lösung, die ein vorhandenes Bild "überblendet". Mit einem Layer wäre dann wieder zu aufwändig.
Hallo,
und genau der noscript Bereich ist bei mir der Knackpunkt, er wird überhaupt nicht beachtet
Wenn er nicht beachtet wird, ist JS verfügbar, also wird das Bild entsprechend der ermittelten Auflösung eingebunden. Ich habe den Code getestet, er funktioniert, sowohl mit als auch ohne JS. Ergo muss der Fehler woanders liegen.
Poste einfach mal einen Problemlink.
Viele Grüße
Torsten
Ergo muss der Fehler woanders liegen.
warum, weiß ich nicht, aber auf einer NT Maschine läuft der noscript Befehl nicht, weder lokal noch übers Internet, in beiden Zonen ausgeschaltet und getestet. Auf XP und Win2003 ohne Probleme, danke für die Hilfe.