Zufallsgenerator für Bilder in einer css - Datei

  • Hallo,

    erst mal danke für die Unterstützung bei meiner ersten Frage, hat alles bestens geklappt, vielen Dank.

    Hier nun das nächste Problem:

    Ich habe bei der Homepage, an der ich gerade bastel, das Layout über eine css - Datei formatiert. In dieser Datei wird auch ein Bild als Hintergrund für die Navigationsleiste definiert.

    Für dieses Bild möchte ich nun einen Zufallsgenerator machen, der automatisch bei jedem neuen Laden ein anderes Bild an der selben Stelle einfügt.

    Bis jetzt sieht das ganze so aus:

    background-image: url(../images_template1/header_bg.jpg);

    Es gibt jetzt also mehrere Bilder, nennen wir sie 1.jpg, 2.jpg usw., die zufällig eingefügt werden sollen. Wie füge ich das am besten in die css - Datei ein?

    Danke!!![/code]

  • Also eine CSS ist an sich statisch und kann nur dadurch verändert werden, indem du sie als ganzes neu generierst und dann unter dem selben Namen überschreibstg.

    Daher gibt es z.B. in Php die Möglichkeit eine neue CSS zu bauen.

    Du kannst alternativ allerdings auch die Background in die Html auslagern und dann hier u.a. per Javascript eien solche generierung errreichen...

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Hm, das ist nicht so einfach zu lösen.
    Mir fallen jetzt Spontan 2 Möglichkeiten ein.

    Methode 1:
    Dazu solltest du den Teil mit dem Hintergrund im <style></style>-Tag in deiner Seite einbinden.
    Dann kann man, z.B. über PHP eine Zufalls Ausgabe machen.
    Dabei können wir dir garantiert helfen, und das geht auch (eigentlich) ohne Probleme.

    Methode 2:
    Du könntest das Hintergrundbild über Javascript ändern lassen, das funktioniert jedoch nur, wenn der Client Javascript angeschaltet hat.

    Ich selbst würde die erste benutzen, aber soll ja deine Entscheidung sein.
    Allein mit HTML und/oder CSS kommst du da (leider) nicht weit.

    /edit: Mist, zu langsam ;)

  • OK, das ging schnell ;)

    Soll also heißen, ich nehm den Teil mit dem background, der oben steht, ganz aus der css raus und integrier den Zufallsgenerator in jede Seite einzeln, oder?

    Da ich PHP - mäßig überhaupt keine Ahnung hab, müsstet ihr mir relativ ausführlich helfen ;)

  • hier mal nen script für zufallsbilder (nicht als hintergrund, sondern ganz normal für ein bild im body der page):

    jetzt musste des nur noch auf deine bedürfnisse anpassen^^

    solltest du dich für die scriptvariante entscheiden, wäre es ratsam auf der page zu erwähnen, daß javascript für volle funktionalität eingeschaltet sein muss.

  • ich hab mich seinem problem mal angenommen und mir den projektordner schicken lassen...
    das lustige ist, daß mein zufallsgenerator funktioniert, aber daß die bilder dennoch nicht angezeigt werden.
    mein workaround war: in der style.css die klasse für die hintergrundgeschichte unter anderen classnames speichern und für jedes bild, daß er anzeigen möchte praktisch ne eigene klasse schreiben...

    der zufallsgenerator hat dann die classNames in einem Array und wechselt auch diese (hab ich durch alert anzeigen lassen)

    hier mal der code-ausschnitt:

    beim klicken[hab extra onClick genommen, damit man nich immer wieder neu laden muss- halt zur kontrolle] in der seite wird eben wie erhofft der classname per zufall vergeben
    (zur zeit hat er nur 3 pics, aber des reicht ja auch erstmal)
    vergebe ich einen der anderen classnames per hand und direkt, wird ein anderes bild angezeigt, doch beim script verschwindet das bild, obwohl (wie durch die alerts zu sehen ist) alles eigentlich funktionieren sollte!

    EDIT:
    hab den fehler grad beim babbeln mit meiner frau nebenbei erkannt.. die classnames sind ungültig oder irre ich mich?? habs gard geschafft! indem ich das td vorm className weggelassen hab