Autor Zpráva
TeeVee
Profil *
Dobrý den,

Řeším náhodnou změnu obrázku pozadí po načtení nějaké stránky (nebo refresh stránky) - ale nikoli skrze javascript nebo php - ale přímo v css.

V mém grafickém layoutu používám klasicky:

#header {
background: url('jeden-z-obrazku.jpg');
}


Lze vytvořit funkci nebo "cokoli", co mi bude přímo v css měnit obrázky?

Pokud bych chtěl pozadí headeru měnit dynamicky - napadlo mě ještě použití php scriptu, který by z pole načítal přímo jednotlivé "headery" z css - takže by to mohlo vypadat něco jako:

PHP Kód

$headers = array("header1",            
                        "header2", 
                        "header3", 
                        "header4"); 
mt_srand(time()); 
$random_index = mt_rand(1, (count($headers))); 
$random_index--; 

?> 

<div id="<? echo "$headers[$random_index]" ?>" >

CSS Kód

#header1 {
background: url('obrazek1.jpg');
}

#header2 {
background: url('obrazek2.jpg');
}

...


Existovalo by ještě nějaké řešení nebo máte nějaké lepší zkušenosti či nápad??? :-)

Předem díky
Lukáš
TeeVee
Profil *
Ještě mě napadlo nějaké vylepšení, pokud bych chtěl obrázky v headeru trochu "ovládnout" - tím myslím že například pro stránku "home" by připadal styl "header-home", pro stránku "aktuality" by připadal styl "header-aktualita", pro stránku "kontakt" by připadal styl "header-kontakt" ... prostě aby každá stránka měla svůj vlastní header načtený z css.
mattyZEM
Profil
Když už chceš pojmenovávat hlavičky například "header28", proč tak složitě?
<div id="header<?php echo rand(1,5); ?>"></div>
TeeVee
Profil *
mattyZEM: no vidiš to :) tohle mě vůbec nenapadlo! díky :-)

Když už bych chtěl ale použít získávání aktuální url adresy a na základě adresy přiřadit obrázek (dejme tomu obrázek z pole), jak bych to mohl v php vyhodnotit?

adresa /o-nas/ bude mít obrázek header1
adresa /kontakt/ bude mít obrázek header2
...
mattyZEM
Profil
Pokud to děláš jako většina lidí (v indexu includuješ stránku) tak $_GET[]-em.
<div id="header<?php if(isset($_GET['str']))echo '-'.$_GET['str']; ?>"></div>


Pokud ne, použiješ $_SERVER[]
<div id="header-<?php echo $_SERVER['REQUEST_URI']; ?>"></div>


U $_SERVER[]-u by jsi to ale musel upravit (například smazat "/" atd.).
Imho SERVER bych nepoužil raději :).
TeeVee
Profil *
mattyZEM: první varianta vypadá slibně :) zkusím to, vypadá to ideálně a přesně tak, jak bych potřeboval. Díky za typ :)
Chamurappi
Profil
Reaguji na mattyZEMa:
U $_SERVER[]-u by jsi to ale musel upravit (například smazat "/" atd.).
A u té první možnosti ne? Nezadělá si na XSS díru tím, že plácne parametr z adresy přímo do HTML?
mattyZEM
Profil
Chamurappi:
Nezadělá si na XSS díru tím
To jak si to ověří je na něm, já třeba $_GET ruším pokud soubor neexistuje.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0