Avatar billede fcand Nybegynder
14. juni 2009 - 18:39 Der er 11 kommentarer og
1 løsning

Rotation af baggrundsbillede eller css class/id når siden opdateres

Hej hej

Som overskriften beskriver, så er jeg på udkig efter et script der bevirker at mit header billede skifter (random) hvergang siden reloades, så der altid er variation i headeren på mine forskellige sider.

Lige pt er min header et <DIV> tag, med en css .class tilknyttet, hvor der er defineret et baggrundsbillede, så kan man måske få et script til at sifte mellem forskellige .class'es, så man bare laver om i sin css fil, når man vil have nye billeder ind!?

På forhånd tak!
Avatar billede fant0mas Nybegynder
14. juni 2009 - 19:40 #1
Avatar billede nyp Nybegynder
14. juni 2009 - 20:37 #2
Noget i denne stil kunne vel gøre det hvis det skal være JavaScript :)

<script type="text/javascript">
function changeImage(){
    var c = new Array("header1","header2","header3");
    var r = parseInt(Math.random()*c.length,10);
    var el = document.getElementById("header");
    el.className = c[r];
}
onload=changeImage;
</script>

<body>
<div id="header" class="header1"></div>
</body>
Avatar billede fant0mas Nybegynder
14. juni 2009 - 20:48 #3
Doh, min fejl. Dog ville jeg stadig, hvis muligt -klare den i et serverside sprog.
Avatar billede fcand Nybegynder
14. juni 2009 - 22:57 #4
nyp > det kunne godt se ud til at det er noget i den stil jeg leder efter, men jeg kan dog ikke få det til at virke!? Jeg må indrømme at jeg ikke er særlig skarp til programmering. (X)HTML og CSS kan jeg, men alt andet webprogrammering er wolapyk :-P

Jeg har ændret header1,2 og 3 til andre id navne jeg har i min css fil, og ændret der hvor du har skrevet getelementbyid("header"), til den id jeg har skrevet i div tagget!?

Er det korrekt?
Avatar billede nyp Nybegynder
14. juni 2009 - 23:45 #5
Du skriver "Jeg har ændret header1,2 og 3 til andre id navne jeg har i min css fil", du mener vel classer?

I mit tilfælde kunne css se sådan her ud:

#header{
    position: absolute;
    width: 1000px;
    height: 100px;
}

.header1{
    background: url(image1.png);
}

.header2{
    background:    url(image2.png);
}

.header3{
    background:    url(image3.png);
}
Avatar billede fcand Nybegynder
15. juni 2009 - 00:00 #6
hmm, nej min css fil så anderledes ud, men nu har jeg prøvet at ændre den til dit layout, men det virker stadig ikke, det vises slet intet billede!??
Avatar billede nyp Nybegynder
15. juni 2009 - 08:24 #7
Lidt svært at sige uden kode, men prøv at sætte dine class på elementet uden at køre koden:

//onload=changeImage;

..............

<div id="header" class="header1"></div>

Hvis du stadig ikke får noget billede er det css der er noget galt med, hvis du kan få vist alle billeder er der noget galt med dit script.
Avatar billede fcand Nybegynder
15. juni 2009 - 12:38 #8
Aha, så fik jeg det til at virke :) - det hjalp da jeg satte changeImage() ind i <body onload="">.

Mange tak :)

Så går jeg ud fra at hvis jeg laver nye class'es med nye billeder, så skal de bare defineres i script'et som header4,5,6 osv.!?
Avatar billede nyp Nybegynder
15. juni 2009 - 16:17 #9
Ja du kan lægge alle dem på du har lyst :)
Avatar billede fcand Nybegynder
15. juni 2009 - 16:27 #10
Det virker upåklageligt, mange tak for det :)
Du kan se det i aktion her: www.afcdesign.dk/v6 - Det varer ikke længe inden siden kan komme op og køre rigtig nu :)

Jeg har dog et problem mere, jeg skal nok oprette et nyt spørgsmål, det kan være du kan hjælpe mig der også!?

Kan man med javascript, definerer en variabel der viser hvad man linker til på samme side, så man ikke behøver at oprette en ny side der indeholder det man har linket til på forrige side!?

Håber du forstår
Avatar billede fcand Nybegynder
15. juni 2009 - 16:30 #11
fant0mas >> også tak for dine kommentarer, det kan godt være at det kan laves smartere i PHP eller lignende, men jeg har bare et større overblik over javascript, så det forestrækker jeg :)
Avatar billede nyp Nybegynder
15. juni 2009 - 19:47 #12
Jeg er ikke sikker på jeg forstår, så det er nok bedst du opretter et nyt spørgsmål og beskriver det nærmere.

Tak for p.
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