Kontakt Home Grundlagen Scripts zum Kopieren Beispiele
JavaScript

Vertikale Streifen

Da hab ich mir doch selbst ein Ei gelegt: Ein Entwurf mit vertikal gestreiftem Hintergrund, worauf eine Fläche mit Schattenwurf liegt. Der Schatten wird gedithert - auf einem gestreiften Hintergrund.

Als ich das dann umsetzen wollte, war es schon zu spät - ein JavaScript mußte her und hier ist es:

Das Script fragt die innere Breite des Browsers ab und generiert in von-bis-Schritten eine passende Breite für ein transparentes Gif, daß ich neben die Tabelle gesetzt habe (in die Spalte ganz links). Dadurch wird nun die schattierte 'Box' immer so von links weggerückt, daß sie halbwegs mittig steht, aber die Streifen vom Schatten nicht mit den Streifen vom Hintergrund durcheinanderkommen.

Das würde passieren ohne JavaScript: vertikalStreifen_ohne.html [in neuem Fenster öffnen]

Wenn du ein bissel am Browserfenster rumziehst, siehst du, daß die Streifen vom Schatten fast nie mit den Streifen vom Hintergrund übereinstimmen.

Und das passiert mit dem Javascript:
vertikalStreifen.html [in neuem Fenster öffnen]

Und so gehts:

Die Datei vertikalStreifen.html am besten herunterladen und angucken (rechte Maustaste oder Apfel + Maus --> Ziel, Verknüpfung speichern unter...)

In die linke Spalte links von der Zelle mit dem eigentlichen Inhalt kommt das Javascript, dann brauchst du nur noch zu veranlassen, daß der Browser bei Größenveränderungen die Seite samt dem skalierten transparenten GIF neu lädt.

 

Das Script:

 

<script language="JavaScript" type="text/javascript">
// rausfinden, was fuer ein Browser:
Browsername=navigator.appName;
// Breite herausfinden:
// fuer Internet Explorer:
if (Browsername == "Microsoft Internet Explorer")
{
var gesamtBreite = document.body.offsetWidth;
}
// fuer Mozillas:
else
{
var gesamtBreite = window.innerWidth;
}

var vorhandenerPlatz = (gesamtBreite - 768)/2;
var BildBreite = parseInt((vorhandenerPlatz*80)/100);

 

Dieses Script muß direkt in die Seite, weil es (ganz unten) den Code für das Image selbst hineinschreibt.

if (gesamtBreite < 850)
{
BildBreite=2;
}
else
{
if (BildBreite <= 100)
{
BildBreite = 54;
}
if (BildBreite >100 && BildBreite <=200)
{
BildBreite = 106;
}
if (BildBreite > 200 && BildBreite <= 300)
{
BildBreite = 210;
}
if (BildBreite > 300)
{
BildBreite = 314;
}
}

An diesen Zahlen kannst du nun feilen - das kommt auf deine Streifen an!

Am besten ausprobieren und evtl. die Variable 'BildBreite' vom Browser ausgeben lassen (letzte auskommentierte Zeilen) oder aber einen Rahmen um das Bild machen, um es sichtbar zu machen. Der Rahmen muß hinterher allerdings wieder zu der Bildbreite hinzugerechnet werden!

// Bild hinschreiben mit der richtigen breite:
document.write("<img src='../images/trans.gif' height='1' width='" + BildBreite + "' border='0'>");
// Ausgabe der Variablen zu Testzwecken, kann nachher weg:
// document.write("<br>Offizieller Name des Browsers:<b> "+ Browsername + "</b><br>");
// document.write ("WidthIE:<b> " + WidthIE + "</b><br>");
// document.write("WidthMozilla: <b>" + WidthMozilla + "</b><br>");
// document.write("vorhandener Platz: <b>" + vorhandenerPlatz + "</b><br>");
// document.write("Bildbreite: <b>" + BildBreite + "</b><br>");

</script>

Hier mußt du natürlich deinen Pfad zu deinem transparenten GIF setzen!

So, fast fertig.

Die Seite muß sich jetzt nur noch bei jeder Größenänderung neu laden, Dreamweaver, Golive und Konsorten können so etwas eigentlich von Hause aus, ansonsten hier schnell der Code:

<script language="JavaScript">
<!--
function MM_goToURL() { //v3.0
var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
//-->
</script>
</head>

Das muß in den Head deiner Seite.

<body onResize="MM_goToURL('parent','vertikalStreifen.html'); return document.MM_returnValue">

Und das ist der Code für den Body, wobei du den Namen der sich selbst ladenden Datei selbstredend verändern mußt.



ein projekt von hfl --> goto:www.liesong.de