Avatar billede spacemorten Nybegynder
31. januar 2005 - 22:11 Der er 7 kommentarer og
1 løsning

Vælg tilfældig CSS dokument

Jeg har et mindre problem som jeg tror kan løses med java?

Jeg har 4 forskellige css dokumenter, der indeholder 4 forskellige baggrundsbilleder. Jeg vil gerne have at den vælger et tilfældigt af de her 4 css dokumenter hver gang siden bliver reloaded. Hvordan kan det løses?

De 4 css dokumenter hedder backg1.css, backg2.css, backg3.css og backg4.css
Avatar billede roenving Novice
01. februar 2005 - 09:50 #1
Hvorfor loade et helt stylesheet, når du kan nøjes med at ændre den ene property:

<script type="text/javascript">
var bgpics = ["pic1.jpg","pic2.jpg","pic3.jpg","pic4.jpg"];

document.body.style.backgroundImage = bgpics[Math.floor(Math.random()*bgpics.length)];
</script>

-- jeg har ikke prøvet, så muligvis kan nummeret først laves onload !-)
Avatar billede olebole Juniormester
01. februar 2005 - 23:31 #2
<ole>

- og den skal nok hedde:

document.body.style.backgroundImage = "url("+bgpics[Math.floor(Math.random()*bgpics.length)]+")";

- og så kan IE vist ikke finde sin 'krop', før den er godt 'loaded' (det kender jeg zq i øvrigt godt fra mig selv *LooL*):

window.onload = function(){
  document.body.style.backgroundImage = "url("+bgpics[Math.floor(Math.random()*bgpics.length)]+")";
}


/mvh
</bole>
Avatar billede roenving Novice
02. februar 2005 - 03:14 #3
Hov, ja !-)
Avatar billede spacemorten Nybegynder
02. februar 2005 - 11:51 #4
Undskyld, jeg ikke har svaret før, men har været væk fra min computer et stykke tid. Jeg vil helst at jeg henter et helt stylesheet af nogle årsager. Jeg har dog fundet løsningen i denne tråd som jeg kom til at oprette ved en fejl:
http://www.eksperten.dk/spm/586107

Eneste problem er at SP2 blokerer den i IE. Er der en workaround til det?
Avatar billede roenving Novice
02. februar 2005 - 12:02 #5
-- også når du kører det på serveren ?-)
Avatar billede spacemorten Nybegynder
02. februar 2005 - 12:07 #6
Næh, på serveren er der intet problem :D

Tak tak. I er simpelthen alle så kloge herinde ;)
Avatar billede boomshanka Nybegynder
02. februar 2005 - 12:51 #7
he he, der er intet som at komme snigende ind fra sidelinien og snuppe point :-)

No offense olebole og roenving...
Avatar billede olebole Juniormester
02. februar 2005 - 18:53 #8
Helt i orden. Nu har metoden document.write ikke så pokkers lang levetid (den kan ikke bruges under XHTML - og det kommer vi alle til at overgå til i løbet af et par år), så du kan ligeså godt allerede nu bruge DOM:

<script type="text/JavaScript" language="javascript">
var cssDocument = new Array();
cssDocument[0]="backg1.css";
cssDocument[1]="backg2.css";
cssDocument[2]="backg3.css";
cssDocument[3]="backg4.css";

var ss = document.createElement("link");
ss.setAttribute("rel", "stylesheet");
ss.setAttribute("type", "text/css");
ss.setAttribute("href", cssDocument[Math.floor(Math.random()*cssDocument.length)]);
document.getElementsByTagName("head")[0].appendChild(ss);
</script>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester