login  Naam:   Wachtwoord: 
Registreer je!
 Forum

tijdbalk

Offline pj_muller00 - 12/07/2005 20:26 (laatste wijziging 12/07/2005 22:21)
Avatar van pj_muller00PHP interesse beste,
Ik zou een tijdbalk willen maken. ongeveer zoals die van msn messenger bij een bestandoverdracht.

Het moet het volgende kunnen :
- op een bedaald punt van de totale tijd vertrekken en dan volopen
- als het volgelopen is moet het terug naar het begin en dan aan het aangegeven tempo volopen etc.

Weet er iemand waar ik dat kan vinden ?

Als het niet duidelijk genoeg is zeg het dan maar 

Alvast d.b.v.

Pj 

(dus als hij vol is moet hij loopen) en het tempo is bv. dat hij in 25 seconden moet vol zijn en een bepaald startpunt is bv. 10 sec.

[EDIT] het is eigenlijk een variatie op eeb countdown ... dus niet zo moeilijk denk ik... maar ik kan toch niet 

36 antwoorden

Gesponsorde links
Offline Brycer - 12/07/2005 20:53
Avatar van Brycer HTML interesse Wil je dit op een website doen, zonder hem steeds hoeven te vernieuwen? Dus een zichtbaar vollopende balk?
Dan moet je flash of een speciale code (http_request, ofzo) gebruiken.
Of wil je gewoon dat hij stilstaat vanaf het laden van de pagina?
Sorry als ik onduidelijk ben;-)
Brycer:)
Offline Keith - 12/07/2005 20:59
Avatar van Keith Grafische gevorderde Je kan het ook als een .gif maken ;) ook makkelijk kan je zelf de tijd bepalen en alles ook het start punt enz enz all1 moet je wel iets als Image Ready hebben maar ik dnek niet dat je dit bedoeld maar het is een suggestie
Offline Dolfje - 12/07/2005 21:01
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
en met javascript gaat dit ook,
gewoon de breedte van de balk aanpassen.

maar legt het nog eens anders uit pj_muller00, want ik snap het niet zo goed  
Offline pj_muller00 - 12/07/2005 21:01 (laatste wijziging 12/07/2005 22:21)
Avatar van pj_muller00 PHP interesse @Brycer dat moet toch mogelijk zijn met javascript niet ?
@Keith dat bedoel ik idd niet want er zijn zeer veel verschillende tempo's

Toch bedankt voor jullie reactie 

Pj
ok dolfie hier gaan we dan ,
Dus hij haalt eerst via php uit de database hoeveel seconden er nog nodig zijn voor dat er een eenheid is gemaakt.

Pak nu dat de totale tijd 20 sec. is en dat hij al aan de 10 sec zit.
Dan zou het moeten aftellen 10 9 8 7 etc. maar dan niet met cijfers maar met een balkje dat gevuld wordt ... en als het op 0 staat springt hij ineens trug op 0 seconden gedaan en telt hij weer af

20 19 18 etc.

Begrepen ? 
Offline Brycer - 12/07/2005 21:04
Avatar van Brycer HTML interesse Ik ben niet zo'n javascript expert:p
Maar een vollopende balk in javascript...
Ik weet niet of het kan;-)
Ik weet wel hoe je in een balk een percentage kunt weergeven, die vastgesteld is bij het laden van de pagina (zoals bij een poll).
Meer kan ik niet voor je doen;-)
Brycer
Offline pj_muller00 - 12/07/2005 21:06
Avatar van pj_muller00 PHP interesse Dat kan ik ook Brycer het is niet wiskundig dat het een probleem vormt maar het progameren. Als je dat bedoeld tenminste 

Pj 
Offline Brycer - 12/07/2005 21:08
Avatar van Brycer HTML interesse Ik bedoel dat als je bijv. 5 sec van de 10 sec hebt gehad, dat dan de helft van de balk vol zit, maar hij blijft tot de helft, totdat je de pagina vernieuwd.
Maar jij wilt dus zoiets als een laadbalk van een website, maar dan niet in flash, maar in javascript?
Brycer
Offline pj_muller00 - 12/07/2005 21:11 (laatste wijziging 12/07/2005 21:12)
Avatar van pj_muller00 PHP interesse Idd 

[EDIT] Ik zou het perfect kunnen in PHP maar dan beweegt het niet dat is het probleem 
Offline Brycer - 12/07/2005 21:13
Avatar van Brycer HTML interesse sorry, dan kan ik je niet helpen;-)
Maar heb je al aan een tabel gedacht voor de balk zelf?:)
Brycer
Offline Dolfje - 12/07/2005 21:14
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
dan moet je met javascript een php-pagina inladen, die pagina echo't hoever je zit en dan begin je af te tellen.

Dit is al wat moeilijker, k'zal m'n broertje (kan het beter dan ik) eens bijhalen.
Offline haytjes - 12/07/2005 21:17
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
ben bezig aan 't maken ...
Offline pj_muller00 - 12/07/2005 21:20 (laatste wijziging 12/07/2005 22:20)
Avatar van pj_muller00 PHP interesse Danku ! 

kmoet nu door post het maar en ik zal een pm sturen.
Echt bedankt 

Pj
Offline haytjes - 12/07/2005 21:50 (laatste wijziging 12/07/2005 22:11)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
sorry dat het zo lang duurde (het lukt niet direct)

  1. <html>
  2. <head>
  3. <script>
  4. var totaalsec = 5; // seconden voor balk aan nul
  5. var grootte = 100; // van hoeveel px hij moet aftellen
  6. var snelheid = 100; // de snelheid waarmee hij update in milliseconden
  7. //////////////////////
  8. var sec = -1;
  9. function aftel()
  10. {
  11. sec_vol = totaalsec*1000/snelheid;
  12. if(sec < 0)
  13. sec = sec_vol;
  14. document.getElementById('teller').width = grootte*sec/sec_vol;
  15. sec--;
  16. }
  17. </script>
  18. </head>
  19. <body onload='setInterval("aftel()",snelheid);'>
  20. <table>
  21. <tr>
  22. <td id='teller' style='background:black;' height='20'>
  23. </td>
  24. </tr>
  25. </table>
  26. </body>
  27. </html>


dit is het, als je nog vragen hebt stel ze maar,
normaal ben ik een uurtje vrij over de middag.

[edit]
nog 'snelheid' aan toegevoegd^^
Offline Brycer - 12/07/2005 22:16
Avatar van Brycer HTML interesse Bij mij stopt hij bij 0, en geeft ie: 'fout op de pagina':s
Offline gijs - 12/07/2005 22:50
Avatar van gijs HTML beginner Ik heb een werkende:

  1. Stap 1: Plak onderstaand script in de <body> van je site op de plek waar de "tijdbalk" moet verschijnen.
  2.  
  3. <script language="javascript" src="tijdlijn.js"></script>
  4.  
  5. Stap 2: Download het bestand "tijdlijn.js" door op onderstaande button te klikken. Je kunt in het bestand "tijdlijn.js" wijzigingen aanbrengen in het uiterlijk e.d. van de tijdlijn.
  6.  
  7. Stap 3: Upload het bestand "tijdlijn.js" naar dezelfde plaats als waar je website met het script staat.


hier de inhoud van tijdlijn.js
  1. // Timer Bar - Version 1.0
  2. // Author: Brian Gosselin of http://scriptasylum.com
  3.  
  4. var loadedcolor='000000' ; // PROGRESS BAR COLOR
  5. var unloadedcolor='lightgrey'; // COLOR OF UNLOADED AREA
  6. var bordercolor='3333CC'; // COLOR OF THE BORDER
  7. var barheight=15; // HEIGHT OF PROGRESS BAR IN PIXELS
  8. var barwidth=300; // WIDTH OF THE BAR IN PIXELS
  9. var waitTime=5; // NUMBER OF SECONDS FOR PROGRESSBAR
  10.  
  11. // THE FUNCTION BELOW CONTAINS THE ACTION(S) TAKEN ONCE BAR REACHES 100%.
  12. // IF NO ACTION IS DESIRED, TAKE EVERYTHING OUT FROM BETWEEN THE CURLY BRACES ({})
  13. // BUT LEAVE THE FUNCTION NAME AND CURLY BRACES IN PLACE.
  14. // PRESENTLY, IT IS SET TO DO NOTHING, BUT CAN BE CHANGED EASILY.
  15. // TO CAUSE A REDIRECT TO ANOTHER PAGE, INSERT THE FOLLOWING LINE:
  16. // window.location="http://redirect_page.html";
  17. // JUST CHANGE THE ACTUAL URL OF COURSE :)
  18.  
  19. var action=function()
  20. {
  21. alert("Welkom bij Henk's javascript verzameling!");
  22. //window.location="http://home.wanadoo.nl/java.script/
  23. }
  24.  
  25. //*****************************************************//
  26. //********** DO NOT EDIT BEYOND THIS POINT **********//
  27. //*****************************************************//
  28.  
  29. var ns4=(document.layers)?true:false;
  30. var ie4=(document.all)?true:false;
  31. var blocksize=(barwidth-2)/waitTime/10;
  32. var loaded=0;
  33. var PBouter;
  34. var PBdone;
  35. var PBbckgnd;
  36. var Pid=0;
  37. var txt='';
  38. if(ns4){
  39. txt+='<table border=0 cellpadding=0 cellspacing=0><tr><td>';
  40. txt+='<ilayer name="PBouter" visibility="hide" height="'+barheight+'" width="'+barwidth+'" onmouseup="hidebar()">';
  41. txt+='<layer width="'+barwidth+'" height="'+barheight+'" bgcolor="'+bordercolor+'" top="0" left="0"></layer>';
  42. txt+='<layer width="'+(barwidth-2)+'" height="'+(barheight-2)+'" bgcolor="'+unloadedcolor+'" top="1" left="1"></layer>';
  43. txt+='<layer name="PBdone" width="'+(barwidth-2)+'" height="'+(barheight-2)+'" bgcolor="'+loadedcolor+'" top="1" left="1"></layer>';
  44. txt+='</ilayer>';
  45. txt+='</td></tr></table>';
  46. }else{
  47. txt+='<div id="PBouter" onmouseup="hidebar()" style="position:relative; visibility:hidden; background-color:'+bordercolor+'; width:'+barwidth+'px; height:'+barheight+'px;">';
  48. txt+='<div style="position:absolute; top:1px; left:1px; width:'+(barwidth-2)+'px; height:'+(barheight-2)+'px; background-color:'+unloadedcolor+'; font-size:1px;"></div>';
  49. txt+='<div id="PBdone" style="position:absolute; top:1px; left:1px; width:0px; height:'+(barheight-2)+'px; background-color:'+loadedcolor+'; font-size:1px;"></div>';
  50. txt+='</div>';}
  51.  
  52. document.write(txt);
  53.  
  54. function incrCount(){
  55. window.status="Loading...";
  56. loaded++;
  57. if(loaded<0)loaded=0;
  58. if(loaded>=waitTime*10){
  59. clearInterval(Pid);
  60. loaded=waitTime*10;
  61. setTimeout('hidebar()',100);}
  62. resizeEl(PBdone, 0, blocksize*loaded, barheight-2, 0);}
  63.  
  64. function hidebar(){
  65. clearInterval(Pid);
  66. window.status='';
  67. //if(ns4)PBouter.visibility="hide";
  68. //else PBouter.style.visibility="hidden";
  69. action();}
  70.  
  71. function findlayer(name,doc){
  72. var i,layer;
  73. for(i=0;i<doc.layers.length;i++){
  74. layer=doc.layers[i];
  75. if(layer.name==name)return layer;
  76. if(layer.document.layers.length>0)
  77. if((layer=findlayer(name,layer.document))!=null)
  78. return layer;}
  79. return null;}
  80.  
  81. function progressBarInit(){
  82. PBouter=(ns4)?findlayer('PBouter',document):(ie4)?document.all['PBouter']:document.getElementById('PBouter');
  83. PBdone=(ns4)?PBouter.document.layers['PBdone']:(ie4)?document.all['PBdone']:document.getElementById('PBdone');
  84. resizeEl(PBdone,0,0,barheight-2,0);
  85. if(ns4)PBouter.visibility="show";
  86. else PBouter.style.visibility="visible";
  87. Pid=setInterval('incrCount()',95);}
  88.  
  89. function resizeEl(id,t,r,b,l){
  90. if(ns4){
  91. id.clip.left=l;
  92. id.clip.top=t;
  93. id.clip.right=r;
  94. id.clip.bottom=b;
  95. }else id.style.width=r+'px';}
  96.  
  97. window.onload=progressBarInit;


:p
Offline pj_muller00 - 13/07/2005 08:26 (laatste wijziging 13/07/2005 08:37)
Avatar van pj_muller00 PHP interesse Probleempje ...
Het script van haytjes werkt wel maar gaat niet trug naar voledig
En hetgene van gijs zie ik gewoon een grijze balk ... er beweegt niets 

Toch bedankt,
Pj 

[EDIT] ik heb het script van haytjes gemaakt 

Het moet het volgende zijn
  1. if(sec <= 0)
  2. sec = sec_vol;

In plaats van enkel <

Nu heb ik wel nog een vraag ... Hoe kan ik de waardes die ik via PHP uit een db heb gehaald in deze code steken ?
Offline haytjes - 13/07/2005 08:37 (laatste wijziging 13/07/2005 08:38)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
ja, bij mij werkte het op firefox, maar IE laat niet toe dat ik neg waarden geef aan een table:
  1. ...
  2. sec_vol = totaalsec*1000/snelheid;
  3. if(sec < 0)
  4. sec = sec_vol;
  5. ...

veranderen in
  1. ...
  2. sec_vol = totaalsec*1000/snelheid;
  3. if(sec <= 0)
  4. sec = sec_vol;
  5. ...

[edit]

net te laat^^

var totaalsec = {hier in seconden hoe lang}; // seconden voor balk aan nul
var grootte = 100; // van hoeveel px hij moet aftellen
var snelheid = 100; // de snelheid waarmee hij update in milliseconden
//////////////////////
Offline pj_muller00 - 13/07/2005 08:38 (laatste wijziging 13/07/2005 08:39)
Avatar van pj_muller00 PHP interesse ik was je voor 

[EDIT] zou je op mn vraag kunnen antwoorden ?
Offline pj_muller00 - 13/07/2005 08:40 (laatste wijziging 13/07/2005 08:41)
Avatar van pj_muller00 PHP interesse Zou ik het zo kunnen doen ?
  1. <html>
  2. <head>
  3. <script>
  4. var totaalsec = <?php echo $var; ?>; // seconden voor balk aan nul
  5. var grootte = <?php echo $var2; ?>; // van hoeveel px hij moet aftellen
  6. var snelheid = <?php echo $var3; ?>; // de snelheid waarmee hij update in milliseconden
  7. //////////////////////
  8. var sec = -1;
  9. function aftel()
  10. {
  11. sec_vol = totaalsec*1000/snelheid;
  12. if(sec < 0)
  13. sec = sec_vol;
  14. document.getElementById('teller').width = grootte*sec/sec_vol;
  15. sec--;
  16. }
  17. </script>
  18. </head>
  19. <body onload='setInterval("aftel()",snelheid);'>
  20. <table>
  21. <tr>
  22. <td id='teller' style='background:black;' height='20'>
  23. </td>
  24. </tr>
  25. </table>
  26. </body>
  27. </html>
Offline haytjes - 13/07/2005 08:41 (laatste wijziging 13/07/2005 08:41)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
gewoon totaalsec veranderen in het gewenste?:

....
  1. <head>
  2. <script>
  3. var totaalsec = <?echo $sec;?>; // seconden voor balk aan nul
  4. var grootte = 100; // van hoeveel px hij moet aftellen
  5. var snelheid = 100; // de snelheid waarmee hij update in milliseconden
  6. //////////////////////
  7. ...


zoiets ??

[edit]
weer te laat, maar inderdaad
Offline pj_muller00 - 13/07/2005 08:42 (laatste wijziging 13/07/2005 08:49)
Avatar van pj_muller00 PHP interesse En nog 1 ding, nee eigenlijk 2 

-Ik zou graag willen dat hij voloopt en niet leegloopt. (zal ik waarschijnlijk de formule moeten veranderen
- En ik zou graag een kader rond het geheel hebben ... dan zie je hoeveel van het totaal.

Nee eigenlijk het zijn er 3 
- En kan je me uitleggen hoe ik de var sec. moet gebruiken ... Danku 

Pj 
Bedankt voor al de hulp
Offline haytjes - 13/07/2005 08:46 (laatste wijziging 13/07/2005 08:47)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
optellen
  1. <html>
  2. <head>
  3. <script>
  4. var totaalsec = 5; // seconden voor balk aan nul
  5. var grootte = 100; // van hoeveel px hij moet aftellen
  6. var snelheid = 100; // de snelheid waarmee hij update in milliseconden
  7. //////////////////////
  8. var sec = 1;
  9. function aftel()
  10. {
  11. sec_vol = totaalsec*1000/snelheid;
  12. if(sec >= sec_vol)
  13. sec = 1;
  14. document.getElementById('teller').width = grootte*sec/sec_vol;
  15. sec++;
  16. }
  17. </script>
  18. </head>
  19. <body onload='setInterval("aftel()",snelheid);'>
  20. <table>
  21. <tr>
  22. <td id='teller' style='background:black;' height='20'>
  23. </td>
  24. </tr>
  25. </table>
  26. </body>
  27. </html>
Offline haytjes - 13/07/2005 08:48 (laatste wijziging 13/07/2005 08:48)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
met border ofzoiets
  1. <html>
  2. <head>
  3. <script>
  4. var totaalsec = 5; // seconden voor balk aan nul
  5. var grootte = 100; // van hoeveel px hij moet aftellen
  6. var snelheid = 100; // de snelheid waarmee hij update in milliseconden
  7. //////////////////////
  8. var sec = 1;
  9. function aftel()
  10. {
  11. sec_vol = totaalsec*1000/snelheid;
  12. if(sec >= sec_vol)
  13. sec = 1;
  14. document.getElementById('teller').width = grootte*sec/sec_vol;
  15. sec++;
  16. }
  17. </script>
  18. </head>
  19. <body onload='setInterval("aftel()",snelheid);'>
  20. <table width='100'>
  21. <tr>
  22. <td id='teller' style='background:black;' height='20'><td style='background:yellow;'>
  23. </td>
  24. </tr>
  25. </table>
  26. </body>
  27. </html>
Offline pj_muller00 - 13/07/2005 08:55
Avatar van pj_muller00 PHP interesse Hij geeft een error on page met deze instellingen ?
  1. <html>
  2. <head>
  3. <script>
  4. var totaalsec = 12; // seconden voor balk aan nul
  5. var grootte = 40; // van hoeveel px hij moet aftellen
  6. var snelheid = 100; // de snelheid waarmee hij update in milliseconden
  7. //////////////////////
  8. var sec = 0;
  9. function aftel()
  10. {
  11. sec_vol = totaalsec*1000/snelheid;
  12. if(sec >= sec_vol)
  13. sec = 1;
  14. document.getElementById('teller').width = grootte*sec/sec_vol;
  15. sec++;
  16. }
  17. </script>
  18. </head>
  19. <body onload='setInterval("aftel()",snelheid);'>
  20. <table width='40'>
  21. <tr>
  22. <td id='teller' style='background:darkblue;' height='7'><td style='background:black;'>
  23. </td>
  24. </tr>
  25. </table>
  26. </body>
  27. </html>
Offline haytjes - 13/07/2005 08:57 (laatste wijziging 13/07/2005 08:57)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
Citaat:
Nee eigenlijk het zijn er 3
- En kan je me uitleggen hoe ik de var sec. moet gebruiken ... Danku

-'k snap de vraag ni

de seconden staan toch in totaalsec. Tot die totaal seconden telt hij op

Offline pj_muller00 - 13/07/2005 09:00
Avatar van pj_muller00 PHP interesse
  1. var totaalsec = 5; // seconden voor balk aan nul
  2. var grootte = 100; // van hoeveel px hij moet aftellen
  3. var snelheid = 100; // de snelheid waarmee hij update in milliseconden
  4. //////////////////////
  5. var sec = 2.5;

Als ik dit doe bv. start hij niet in het midden ...
Offline haytjes - 13/07/2005 09:03 (laatste wijziging 13/07/2005 09:03)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
nee, das normaal: sec = totaalsec*1000/snelheid;
dus je moet doen: sec = 2,5*1000/snelheid;

dan start hij wel in het midden
Offline haytjes - 13/07/2005 09:08 (laatste wijziging 13/07/2005 09:15)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
opgelost van 'Hij geeft een error on page met deze instellingen ?'
Ik gebruik nu % i.p.v. width, zodat je geen errors krijgt met 8.5 als width .
  1. <html>
  2. <head>
  3. <script>
  4. var totaalsec = 5; // seconden voor balk aan nul
  5. var snelheid = 100; // de snelheid waarmee hij update in milliseconden
  6. //////////////////////
  7. var sec = 1;
  8. function aftel()
  9. {
  10. sec_vol = Math.round(totaalsec*1000/snelheid);
  11. if(sec >= sec_vol)
  12. sec = 1;
  13. document.getElementById('teller').width = Math.round(sec/sec_vol*100)+'%';
  14. sec++;
  15. }
  16. </script>
  17. </head>
  18. <body onload='setInterval("aftel()",snelheid);'>
  19. <table width='40'>
  20. <tr>
  21. <td id='teller' style='background:darkblue;' height='7'><td style='background:black;'>
  22. </td>
  23. </tr>
  24. </table>
  25. </body>
  26. </html>
Offline pj_muller00 - 13/07/2005 09:13
Avatar van pj_muller00 PHP interesse Het spijt me maar het script dat je juist hebt geplaatst geeft een error ...
Offline haytjes - 13/07/2005 09:15
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
document.title = grootte*sec/sec_vol; verwijderd dat een keer,

dat was voor het testen sorry
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.447s