mmofacts.com

Tutorial -> Wie mache ich ein Countdown(JS)

gepostet vor 18 Jahre, 7 Monate von Kapsonfire
Zuerst sollten wir klären das ein Countdown wahrscheinlich am besten in java-script aufgehoben ist. ich erkläre hier einen einfachen weg und nicht den einfachsten.

Wir fangen an dem browser zusagen das ab der folgenden stelle ein java-script code folgt:
 

Nun bilden wir unsere function. die nennen wir countdown
also:
function countdown() {




Nun sollten wir die Zeit subtrahieren
time--;



Wir haben also jetzt den code
 

function countdown() {


Zudem folgt die textausgabe:
dies machen wir mit if's wenn die zeit niedriger als 1 ist gibt er als text 0 an ,ansonsten zeigt er noch an wieviel sekunden bis 0

dies machen wir mit:
 

if (time < 1) {
text = '0';
} else {

rest=time
text = "Noch " + rest + " bis die Welt untergeht";


nun sollten wir machen das er dies nur jede sekunde ausführt... das machen wir mit einem timeout


 

window.setTimeout('countdown()', 1000);



Nun haben wir den gesamtcode:
 

function countdown() {
time--;
if (time < 1) {
text = '0';
} else {

rest=time
text = "Noch " + rest + " bis die Welt untergeht";
window.setTimeout('countdown()', 1000);

somit haben wir die ifs beendet also noch ein
}
hinzufügen....
nun sollten wir dem browser sagen das er das auch speichert den textinhalt:
dies geschiet durch:
 

document.getElementById('time_div').firstChild.data = text;


Nun haben wir die funktion fertig. also kommt wieder am ende
}


Jetzt haben wir den COuntdown fast fertig. Es fehlen nur noch 2 Sachen.
- Einmal muss die variable time VOR der funktion festgelegt werden
- und 2. am ende noch ausgeführt werden: also!
 


var time = 100000


function countdown() {
time--;
if (time < 1) {
text = '0';
} else {

rest=time
text = "Noch " + rest + " Sekunden bis die Welt untergeht";
window.setTimeout('countdown()', 1000);
}
document.getElementById('time_div').firstChild.data = text;
}


countdown();
gepostet vor 18 Jahre, 7 Monate von Kapsonfire
danke fuer den vorschlag mal schauen^^
gepostet vor 18 Jahre, 7 Monate von gorgo
Also wenn das wirklich ein Tutorial sein soll, so würd ich wie TheUndeadable dazu raten den Code da oben zum größten Teil zu vergessen und stattdessen setinterval zu verwenden.

  




window.clearInterval(tick); löscht im übrigen den Timer. Es ist auch mehr als ein Timer möglich. Und der letzte Parameter (1000) ist die Zeitangabe in millisekunden. Mehr brauch man wirklich nicht um Scrollbars und Timer zum Leben zu erwecken und funktoniert in allen Browsern.

Und @ BGW.
Mensch du hast echt ein gewaltiges Mitteilungsbedürfnis, aber bitte sei mal nicht ganz so impulsiv beim Posten. Was ich hier in der letzten Zeit alles nun von dir gelesen hab sah alles nicht sehr durchdacht aus.
gepostet vor 18 Jahre, 7 Monate von Aviator
schön und gut, aber eine Frage dazu: wenn ich mehrere Counter auf einer eite einsetzen möchte, kann ich das mit einem Script realisieren oder brauche ich für jeden Counter eins? Schließlich brauchen die Variablen dann unterschiedliche Namen.
gepostet vor 18 Jahre, 7 Monate von Drezil
Für sowas gibt es im Fortgeschrittenen-Bereich in der Snippets-db nen dynamisches JavaScript für alle zur freien verfügung..
gepostet vor 18 Jahre, 7 Monate von Aviator
Hallo Drezil,
danke für den Tip, allerdings bin ich für das Fortgeschrittenen Forum noch nicht freigeschaltet aber ein dynamischen Script ist genau was ich brauche... na vielleicht stolpert mal ein Amin vorbei und gewährt mir Zugang zu den geheimen Archiven und Entwicklergilden
gepostet vor 18 Jahre, 7 Monate von Blabbo
Original von Drezil
Für sowas gibt es im Fortgeschrittenen-Bereich in der Snippets-db nen dynamisches JavaScript für alle zur freien verfügung..

genau, im Fortgeschrittenen-Bereich für alle
gepostet vor 18 Jahre, 7 Monate von gorgo
Original von Aviator
schön und gut, aber eine Frage dazu: wenn ich mehrere Counter auf einer eite einsetzen möchte, kann ich das mit einem Script realisieren oder brauche ich für jeden Counter eins? Schließlich brauchen die Variablen dann unterschiedliche Namen.


Ich hoffe ich versteh die Frage nun richtig.
Es läuft ja auf der Seite immer nur ein Script. Egal wie oft du javascript bereich definierst. Die Tags und definieren ja nur die Bereiche im code der an den javascript-interpreter geliefert wird. Gilt auch für eingebunde externe .js Dateien.

alse Eine Seite = 1 Script.

Du musst also einfach nur mit den namen der globalen variablen aufpassen wenn du mehrere Intervalle benutzt.
Eine Lösung ist z.B. per php die js variablen und funktionen zu erzeugen.

 

funtion setevents($max)
{
$ret='';
$glob='';
for ($i=0;$i<=$max;$i++)
{
$glob.="var $tick_$i = window.setInterval("func_$i()",1000);\n".
"var $globaler_zahler_$i = 0;\n";
$ret.="function func_$i(){ ".
" // Anweisungen \n".
"};\n";
}
return
"


\n";
}

?>


Timerwerte und funktionsinhalt kann man natürlich anpassen.

Auf diese Diskussion antworten