• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Background "Rotieren" lassen

Vinek

Neues Mitglied
Hallo Com,
Ich möchte den Hintergrund meiner Seite "Rotieren" lassen, also das bei jedem neu laden bzw. einer Seite auf meine Homepage folgen, sich das Hintergrund ändert, also wie z.B. im Banner Rotator.
Dies möchte ich alles im CSS Dokument abwickeln.
Mein Code sieht zZ so aus:

Code:
body {
    margin: 0;
    padding: 0;
    background: #444444 url(../images/green_default/background.jpg); background-repeat:no-repeat; background-attachment:fixed;
    line-height: 100%;
}

Ich möchte da jetzt noch background2.jpg, 3, 4, 5, u.s.w "Rotieren" lassen.
Ich hoffe einer von euch kann mir helfen.

MfG
Vinek
 
Werbung:
Du könntest mit einer Programmiersprache den CSS-Code beim Laden der Seite so manipulieren, dass bei jedem Neuladen zufällig ein anderes Hintergrundbild ausgewählt wird. CSS alleine kann das nicht.
 
Werbung:
mit CSS kenne ich mich garnicht aus
Mit google anscheinend auch nicht, denn da findet man einige Lösungsvorschläge

Eine Möglichkeit (ungetestet):
An den Anfang der Seite
PHP:
<?php

   session_start();
   
   $backgrounds = array('bg1.jpg', 'bg2.jpg', 'bg3.jpg', 'bg4.jpg', 'bg5.jpg', 'bg6.jpg');
   
   if (isset($_SESSION['lastBg']))
     $index = array_search($_SESSION['lastBg']) + 1;
   else
     $index = 0;
     
   if ($index > count($backgrounds) - 1)
     $index = 0;
     
   $_SESSION['lastBg'] = $backgrounds[$index];
?>
Die CSS-Datei muss die Extension .php haben
PHP:
body {
    margin: 0;
    padding: 0;
    background: #444444 url(../images/<?php echo $_SESSION['lastBg']; ?>); background-repeat:no-repeat; background-attachment:fixed;
    line-height: 100%;
}
 
Zuletzt bearbeitet von einem Moderator:
Irgendwie funktioniert das nicht Ich kriege immer nur einen weißen Hintergrund.
Meine Index.php:
Code:
$backgrounds = array('background.jpg', 'background2.jpg');
   
   if (isset($_SESSION['lastBg']))
     $index = array_search($_SESSION['lastBg']) + 1;
   else
     $index = 0;
     
   if ($index > count($backgrounds) - 1)
     $index = 0;
     
   $_SESSION['lastBg'] = $backgrounds[$index];

Meine CSS datei:
Code:
<?php
include 'index.php'; ?>

body {
    margin: 0;
    padding: 0;
    background: #444444 url(../images/<?php echo $_SESSION['lastBg']; ?>); background-repeat:no-repeat; background-attachment:fixed;
    line-height: 100%;
}
 
Und wo hast du das session_start() gelassen? Und wieso includest du die index.php in der CSS-Datei?
index.php
PHP:
<?php

   session_start();
   
   $backgrounds = array('bg1.jpg', 'bg2.jpg', 'bg3.jpg', 'bg4.jpg', 'bg5.jpg', 'bg6.jpg');
   
   if (isset($_SESSION['lastBg']))
     $index = array_search($_SESSION['lastBg']) + 1;
   else
     $index = 0;
     
   if ($index > count($backgrounds) - 1)
     $index = 0;
     
   $_SESSION['lastBg'] = $backgrounds[$index];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<link rel="stylesheet" type="text/css" href="css/style.php" />
</head>
 
Werbung:
Das session_start war da, aber ich habe vergessen das mitzukopieren.
Ich habe die Includet weil ich dachte das der ja die Befehle braucht die kann der sich ja nicht aus den Fingern saugen.
Funktioniert aber trotzdem nicht, habe alles so gemacht wie du es gesagt hast.
Gibt es denn eine möglichkeit das alles in der Index zu regeln und aus der CSS den Hintergrund entfernen?

MfG
Vinek

EDIT:
Habe es jetzt ausprobiert undzwar so:
Code:
<?php
 session_start();
   
   $backgrounds = array('background.jpg', 'background2.jpg');
   
   if (isset($_SESSION['lastBg']))
     $index = array_search($_SESSION['lastBg']) + 1;
   else
     $index = 0;
     
   if ($index > count($backgrounds) - 1)
     $index = 0;
     
   $_SESSION['lastBg'] = $backgrounds[$index];
?>
<style>
body {
    margin: 0;
    padding: 0;
    background: #444444 url(../images/green_default/<?php echo $_SESSION['lastBg']; ?>); background-repeat:no-repeat; background-attachment:fixed;
    line-height: 100%;
}
</style>

Funktioniert aber auch nicht :( bekomme immer erine weißen Hintergrund
 
Zuletzt bearbeitet:
Du hast auch auf

<link rel="stylesheet" type="text/css" href="css/style.php" />

geachtet?

Klar kannst du das nur in der index.php regeln. Einfach bei body-Tag die Hintergrundgrafik setzen.
 
Moin
in den Fall fehlt in der style.php noch ein
PHP:
<?php session_start(); ?>
Aber ich würde das ganze ohne sessions machen.

Die style.php:
PHP:
<?php
$backgrounds = array('background.jpg', 'background2.jpg');
$randomImg = array_rand($backgrounds);
?>
body {
    margin: 0;
    padding: 0;
    background: #444444 url(../images/<?=$backgrounds[$randomImg]?>);
    background-repeat:no-repeat;
    background-attachment:fixed;
    line-height: 100%;
}
Dann brauchst du die index.php nicht.

So kann aber durchaus ein Bild mehrfach hintereinander angezeigt werden, schlimm?

MfG
 
Werbung:
Moin
in den Fall fehlt in der style.php noch ein
PHP:
<?php session_start(); ?>
Aber ich würde das ganze ohne sessions machen.

Die style.php:
PHP:
<?php
$backgrounds = array('background.jpg', 'background2.jpg');
$randomImg = array_rand($backgrounds);
?>
body {
    margin: 0;
    padding: 0;
    background: #444444 url(../images/<?=$backgrounds[$randomImg]?>);
    background-repeat:no-repeat;
    background-attachment:fixed;
    line-height: 100%;
}
Dann brauchst du die index.php nicht.

So kann aber durchaus ein Bild mehrfach hintereinander angezeigt werden, schlimm?

MfG

Das geht auch nicht weil das ja eine .css datei ist und keine .php.
Kann ich nicht einfach eine .php erstellen und die in der CSS schreibe also so:
Code:
body {
    margin: 0;
    padding: 0;
    background: #444444 url(../css/background.php);
    background-repeat:no-repeat;
    background-attachment:fixed;
    line-height: 100%;
}

Nur was müsste ich dann da rein schreiben, also in die .php?
Weil wo ich mal einen Hintergrund kopieren wollte hab ich auch eine .php bekommen und kein bild.

So kann aber durchaus ein Bild mehrfach hintereinander angezeigt werden, schlimm?

Okay so schlimm ist das nun auch wieder nicht ich werde ja im laufe der Zeit mehr bgs hinzufügen und dann wird es ja immer unwahrscheinlicher das es merfach hintereinander auftaucht.

MfG
 
Werbung:
Werbung:
Werbung:
Das ist eine Problembeschreibung, mit der man herzlich wenig anfangen kann. Wie wäre es mit dem aktuellen Quellcode und einem Link zur entsprechenden Seite?
Ja ich habe das selbe ja schon voher ausprobiert das habe ich auch hier gepostet.

Habs jetzt auch nochmal auf meiner anderen Website ausprobiert da klappt es ebenfalls nicht, kommt immer ein grauer bzw. weißer Hintergrund.
Link zu website: Gamers Special | Das Portal rund ums Gaming
 
Hast du dir mal den HTML-Code angesehen, den der Browser bekommt? Ich würde mal sagen: mittelschwere Katastrophe!

Das fängt an mit
Code:
<title>Gamers Special | Das Portal rund ums Gaming</title>
Und dann mal so ab Zeile 1060 gucken! Dass überhaupt was richtig angezeigt wird, hast du der Gutmütigkeit des Browsers zu verdanken!
 
Zurück
Oben