Avatar billede Neobonde Nybegynder
19. januar 2011 - 20:26 Der er 8 kommentarer og
1 løsning

Baggrund skifter farve

jeg har et projekt på min skole hvor jeg skal lave en hjemmeside hvis baggrund der kan skifte farve efter et stykketid ca. 15 sekunder. Dette er dog ikke det største problem, det er at farven skal skifte synkront på alle computere der er på siden.

jeg ville være meget glad hvis der er nogen der kan hjælpe mig :)
Avatar billede claes57 Ekspert
19. januar 2011 - 20:55 #1
du skal på den enkelt side hente tid fra server, og ud fra klokkeslæt skifte baggrund. Sitet er fx omgivet af
<div style="background-color:#408080" id="baggrund">
</div>
og det kan du så rette med javascript-timer.
Avatar billede Neobonde Nybegynder
20. januar 2011 - 09:03 #2
jeg er desværre ikke så god til javescript kan du uddybe mere
Avatar billede claes57 Ekspert
20. januar 2011 - 13:57 #3
med koden på
http://www.javascriptkit.com/script/script2/servertime.shtml
kan du hente en servers tid ned til den enkelte maskine (så kører de synkront mht skifte)
og i head har du så fx
<script language="JavaScript">
<!--
var timerID = null;
var whichColor = 0;
// Copyright 2001 by www.CodeBelly.com
var backColor = new Array(); // don't change this
// Enter the colors you wish to use.  Follow the
// pattern to use more colors.  The number in the
// brackets [] is the number you will use in the
// function call to pick each color.
backColor[0] = '#FF0000';
backColor[1] = '#00FF00';
backColor[2] = '#0000FF';
backColor[3] = '#FFFFFF';

function changeBG(){
// her skal du hente servertid ned - denne kode bruger lokal pctid til test
var now = new Date();
whichColor = now.getSeconds()/15;
if (whichColor<1){
document.bgColor = backColor[0];
} else if (whichColor<2){
document.bgColor = backColor[1];
} else if (whichColor<3){
document.bgColor = backColor[2];
} else{
document.bgColor = backColor[3];
}
timerID = setTimeout("changeBG()",1000);
}
changeBG()
//-->
</script>

det kan så optimeres, så du kun henter servertid én gang, og udregner forskellen på den tid og lokaltid på pc - og bruger pctiden i resten af forløbet.
Avatar billede Neobonde Nybegynder
20. januar 2011 - 20:22 #4
hvad så hvis jeg også gerne vil have den til at gå lidt hurtigere. :) undskyld jeg er så krævende :)
Avatar billede claes57 Ekspert
20. januar 2011 - 20:31 #5
jeg har givet den 4 farver, og 15 sekunder interval (det passer med 1 minut). Du kan lave 6 farver og 10 sek interval - eller 60 farver og stresse alle maskiner med ingenting.
Med 6 farver i tabellen (0-5), så brug dette undervejs
whichColor = now.getSeconds()/10;
if (whichColor<1){
document.bgColor = backColor[0];
} else if (whichColor<2){
document.bgColor = backColor[1];
} else if (whichColor<3){
document.bgColor = backColor[2];
} else if (whichColor<4){
document.bgColor = backColor[3];
} else if (whichColor<5){
document.bgColor = backColor[4];
} else{
document.bgColor = backColor[5];
}
Avatar billede Neobonde Nybegynder
21. januar 2011 - 09:07 #6
Nu har jeg gjort det og den er ikke synkron på 2 separate computere kan den ikke hente tiden fra serveren eller noget og ikke fra computeren? :)
Avatar billede webit Nybegynder
21. januar 2011 - 10:17 #7
Hvis du skal have server tiden skal du ud i at kalde en server side via ajax og få siden der fra!
Avatar billede claes57 Ekspert
21. januar 2011 - 12:22 #8
det er stadig hjælp til selvhjælp - du henter kode til servertid på
http://www.javascriptkit.com/script/script2/servertime.shtml
og justere javascriptet, så den bruger denne tid.
Avatar billede Neobonde Nybegynder
08. januar 2014 - 10:58 #9
lukker oplæg
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