03. april 2008 - 13:39Der er
32 kommentarer og 1 løsning
Grafisk progressbar til dato
Hej allesammen,
Jeg leder efter en grafisk progress bar, hvor man kan sætte en dato hvorefter den opdaterer sig selv (bliver fyldt ud) indtil den satte dato, hvor den så når de 100% (helt fyldt)
Er der nogen der er stødt på sådan en, eller evt. kan smække sådan en sammen? Jeg ved ikke om det nødvendigvis skal være JavaScript?
hej igen hehe :) Prøver at forklare.. Det er en klub der kører hver fredag. Så jeg vil lave en grafisk progressbar der viser hvor mange dage der er tilbage til festen (den starter så forfra lørdag). Det kan vel i virkeligheden være 7 billeder, der bliver opdateret hver dag, kan det ikke?
<script type="text/javascript"> var progress=document.getElementById("progress"); var d=new Date(); d=d.getDay(); progress.appendChild(document.createElement("img")); progress.firstChild.setAttribute("src",new Date().getDay()+".bmp"); progress.appendChild(document.createElement("br")); if(d==7)progress.appendChild(document.createTextNode("6 dage tilbage til festen!")); else if(d==6)progress.appendChild(document.createTextNode("Festen er i dag!")); else progress.appendChild(document.createTextNode("Kun "+(6-d)+" dage tilbage til festen!")); progress=null; </script>
Så laver jeg lige en enklere kode, der er lettere at forklare:
<div id="progress"><img><br></div>
<script type="text/javascript"> var progress=document.getElementById("progress"); var d=new Date(); d=d.getDay(); progress.getElementsByTagName("img")[0].setAttribute("src",d+".bmp");
if(d==7){ progress.appendChild(document.createTextNode("6 dage tilbage til festen!")); }else if(d==6){ progress.appendChild(document.createTextNode("Festen er i dag!")); }else{ progress.appendChild(document.createTextNode("Kun "+(6-d)+" dage tilbage til festen!")); } </script>
Først finder vi div'en "progress", som vi vil have billedet vist inde i: var progress=document.getElementById("progress");
Så finder vi ugedagen for i dag - denne får vi i form af et tal, hvor mandag er 1 og søndag er 7: var d=new Date(); d=d.getDay();
Så sætter vi billedets "src" til at være lig med d+".jpg", dvs. f.eks. "4.jpg", hvilket vil betyde torsdag: progress.getElementsByTagName("img")[0].setAttribute("src",d+".bmp");
Og så i if-sætningen bliver der indsat en tekst alt efter, hvor lang tid der er til lørdag.
Damn du god hehe.. Jeg har smækket scriptet ind der hvor det skal være, lavet 1.jpg - 7.jpg og lagt det op, men der er et par fejl; den siger der er to dage til festen (og det er fredag i morgen) og den viser ikke noget billede..
lige meget.. lørdag og søndag er fint, skjuler dem jo bare på billederne. Mangler bare førnævnte spørgsmål: Hvordan styler jeg teksten? Der skal vel stå 1 dag og ikke 1 dage, hvordan gør jeg det?
<script type="text/javascript"> var progress=document.getElementById("progress"); var d=new Date(); d=d.getDay(); progress.getElementsByTagName("img")[0].setAttribute("src",d+".bmp");
if(d==7){ progress.appendChild(document.createTextNode("6 dage tilbage til festen!")); }else if(d==6){ progress.appendChild(document.createTextNode("Festen er i dag!")); }else{ progress.appendChild(document.createTextNode("Kun "+(6-d)+" dag"+(6-d==1?e)+" tilbage til festen!")); } </script>
Der manglede lige et kolon, ligesom der stod i fejlbeskrivelsen:
<div id="progress"><img><br></div>
<script type="text/javascript"> var progress=document.getElementById("progress"); var d=new Date(); d=d.getDay(); progress.getElementsByTagName("img")[0].setAttribute("src",d+".bmp");
if(d==7){ progress.appendChild(document.createTextNode("6 dage tilbage til festen!")); }else if(d==6){ progress.appendChild(document.createTextNode("Festen er i dag!")); }else{ progress.appendChild(document.createTextNode("Kun "+(6-d)+" dag"+(6-d==1?"e":"")+" tilbage til festen!")); } </script>
<script type="text/javascript"> var progress=document.getElementById("progress"); var d=new Date(); d=d.getDay(); progress.getElementsByTagName("img")[0].setAttribute("src",d+".bmp");
if(d==7){ progress.appendChild(document.createTextNode("5 dage tilbage til festen!")); }else if(d==6){ progress.appendChild(document.createTextNode("6 dage tilbage til festen!")); }else if(d==5){ progress.appendChild(document.createTextNode("Festen er i dag!")); }else{ progress.appendChild(document.createTextNode("Kun "+(5-d)+" dag"+(5-d==1?"e":"")+" tilbage til festen!")); } </script>
Du må huske at sige, hvordan det ikke virker. Ellers kan jeg jo ikke debugge det. =)
Følgende virker: ----------------------------------------- <html> <head></head> <body>
<div id="progress"><img><br></div>
<script type="text/javascript"> var progress=document.getElementById("progress"); var d=new Date().getDay(); progress.getElementsByTagName("img")[0].setAttribute("src",d+".bmp");
if(d==0){ progress.appendChild(document.createTextNode("5 dage tilbage til festen!")); }else if(d==6){ progress.appendChild(document.createTextNode("6 dage tilbage til festen!")); }else if(d==5){ progress.appendChild(document.createTextNode("Festen er i dag!")); }else{ progress.appendChild(document.createTextNode("Kun "+(5-d)+" dag"+(5-d==1?"e":"")+" tilbage til festen!")); } </script>
</body> </html> ---------------------------------------------- Bemærk dog, at søndag ikke er "7", som jeg først påstod, men derimod 0.
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.