Hintergrundbild zufällig Ändern.

djnijo

Mitglied
HI ich versuche gerade eine script zu schreiben das mir den Seitenhintergrund nach aufruf einer funktion per Zufall aus 5 Bildern ändert. Mit jquery wollte ich den Hintergrund dann ein und Aus-faden lassen.
Gibts da irgend eine Möglichkeit?
 
Also was jquery angeht, da kann ich dir leider nicht helfen. Aber das Wechseln selber kannst du auf die Art lösen:

Javascript:
<script language="javascript" type="text/javascript">
function background() {
	farbe = new Array("#3138B5", "#E27D4A", "#999111", "#CCCE3C", "#666666");
	nr = parseInt(5 * Math.random());
	document.getElementById("div").innerHTML = "Farbwechsel von " + document.bgColor + " zu " + farbe[nr];
	document.bgColor = farbe[nr];
}
</script>
<body bgcolor="#C0C0C0">
	<div id="div" onclick="background();">Farbwechsel</div>
</body>

Hier sind es halt 5 verschiedene Farben (weil ich keine Bilder zur Hand hatte). Aber es sollte dir das Prinzip zeigen.
 
okay danke für die schnelle antwort. im grunde müsste ich ja nur die farben in Bilder umwandeln, anslo anstatt #374274 einfach bild.jpg. und anstatt document.bgColor einfach document.background angeben oder?

hoffe das ich dann auch noch die funktion die ich in php geschrieben hab auch in javascript umschreiben kann. Darin wird im grunde das hintergrundbild auf die browserbreite umgespeichert. heist im ordner bg befinden sich am ende hintergrundbilder in verschiedenen größen um das laden von bilder zu beschleunigen und die Traficmenge bei jedem reload einer seite zu reduzieren.
 
Hi

zum zweiten Absatz: Lass das besser.
a) Von Jpg. etc ausgehend...ob sich das bisschen gesparter Traffic
im Vergleich zur Leistung zum Verkleinern am Server lohnt?...
b) Die Browserbreite und Ähnliches bekommt man in PHP nicht so einfach.
PHP ist schon fertig durchgearbeitet, bevor der Browser irgendwas anzeigen beginnt.

Man könnte die Seite ja ohne Bild rausschicken, über JS die Breite rausfinden,
zu PHP zurückschicken, PHP verkleinert das Bild, schickt das Bild zurück,
dann wirds erst angezeigt. :suspekt:
Dadurch weiterer Nachteil: Das Bild kommt mit wahrscheinlich merkbarer Verzögerung an.
 
Hi

Man könnte die Seite ja ohne Bild rausschicken, über JS die Breite rausfinden,
zu PHP zurückschicken, PHP verkleinert das Bild, schickt das Bild zurück,
dann wirds erst angezeigt. :suspekt:

genau so funktioniert das ganze inzwischen. die seite wird geladen sobald die breite durch JS herausgefunden wurde, wird über jquery ein div mit einer php datei geladen. diese beinhaltet dann die css daten und die php komponenten um das bild exakt auf browsergröße bringt.

PHP:
<? $picW = $_GET['w']; 

    $images = array('dean','dome','max','mo','thomas');
    $zufall = $images[array_rand($images, 1)];//$images[ rand(0,(count($images)-1)) ];
if(file_exists("bgs/".$picW.$zufall.".jpg")){
	$bg="bgs/".$picW.$zufall.".jpg";
}
else{
	$bg="bgpic.php?pic=".$zufall."&w=".$picW;
}
?>
 
<style type="text/css">
<!--
body {
	background: url(<?=$bg?>) top left fixed no-repeat #242323;
}
-->
</style>
<body>
 
Zurück