Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!

Jetzt kostenlos registrieren

TimeOut

Fragen zum Thema JavaScript können hier gestellt werden

Moderatoren: Basti, Guillermo, Ingo

TimeOut

Beitragvon sharkoozie am 07.08.2011, 16:36

Hi!

Ich versuche bei einer textarea onmousemove eine Zählvariable zu decrementieren.

Hat jemand eine Idee, warum das hie rnicht funktioniert, bzw. wie ich es besser machen könnte?

function aus() {
var i=1000;
while (i>0) {
setTimeout('i=i-1',500);
document.getElementById('area').innerHTML=i;
}
}
sharkoozie
Mitglied
 
Beiträge: 26
Registriert: 04.07.2011, 20:44
Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!
 
Jetzt kostenlos registrieren

Re: TimeOut

Beitragvon Guillermo am 07.08.2011, 23:05

Hi sharkoozie,

ich weiss nicht ob ich dich richtig verstanden habe, aber so lange die Maus ueber der Textarea bewegt wird soll nach 500ms jeweils der Counter um eins dekrementiert werden?
Bei dir wird einfach nur zeitverzoegert dekrementiert, d.h. wenn ich die Maus ein bisschen bewege aendert sich der Zaehler erst nach 500 ms und das schlagartig.

Ich hab jetzt einfach mal eine Variante implementiert die auch funktionstuechtig und ausreichend kommentiert. Ist das was du meinstest ?
Code: Alles auswählen
<html>
   <head>
      <title>Testing</title>
      
      <style type="text/css">
      
         #box {
            height:100px;
            width:100px;
            background-color:#ff0000;
            text-align:center;
            line-height:100px;
         }
      
      </style>
      
      <script type="text/javascript">
      
         var blocked = false;   //darf dekerementiert werden?
         var counter = 1000;      //Zaehlerstand
         var box = null;         //Boxelement
         var duration = 100;
      
         function decrease() {
            
            //Pruefen ob Referenz auf Box gesetzt wurde
            if(box == null) {
               box = document.getElementById("box");
            }
         
            //Darf dekrementiert werden?
            if(!blocked) {
               blocked = true;   //Fuer die naechste Zeiteinheit blockieren
               counter--;      //Counter dekrementieren
               box.innerHTML = counter;   //Counter anzeigen
               setTimeout("unblock();", duration);   //Eine Zeiteinheit warten und dann freigeben
            }
         }
         
         //Blockade freigeben
         function unblock() {
            blocked = false;
         }
      
      </script>
      
   </head>
   
   <body>
   
      <div id="box" onmousemove="decrease();">
      </div>
   
   </body>
   
</html>


//Nachtrag: Hab vergessen eine Sperre einzubauen damit der Zaehler nicht ins negative gehen kann, kannst du ja noch einbauen. :)

Viele Gruesse,
Guillermo
Gebildet ist der, der weiß, wo er findet, was er nicht weiß.
Benutzeravatar
Guillermo
Moderator
 
Beiträge: 1093
Registriert: 01.10.2007, 18:18
Wohnort: Bayern

Re: TimeOut

Beitragvon sharkoozie am 08.08.2011, 11:48

Wow!
Super! Vielen Dank für deine Mühe Guilermo. Ich hätte ne Weile gebraucht, bis ich das so hinbekommen hätte. Das ist genau das was ich brauche. Um nicht ins negative zu gehen, baue ich eine if(counter>0)-Bedingung in die unblock()-Funktion ein.

Am Ende soll ein animiertes Feuer mit dem Mauszeiger "gelöscht" werden, indem bei erreichen eines Schwellwertes die Animation jeweils durch ein kleineres Feuer ersetzt wird. (Mein Neffe ist Feuerwehrfan und hat bald Geburtstag). Jetzt bin ich schonmal einen Schritt weiter und starte erstmal CreativeSuite 5. ;-)

Danke nochmal.


mfG
sharkoozie
Mitglied
 
Beiträge: 26
Registriert: 04.07.2011, 20:44

Re: TimeOut

Beitragvon Guillermo am 08.08.2011, 13:31

Gerne, kein Problem. Ja, das mit dem Zaehler so zu machen ist eine gute Idee. Sobald du ein Ergebnis hast kannst du es ja zeigen, bin auf das Ergebnis gespannt.

Viele Gruesse,
Guillermo
Gebildet ist der, der weiß, wo er findet, was er nicht weiß.
Benutzeravatar
Guillermo
Moderator
 
Beiträge: 1093
Registriert: 01.10.2007, 18:18
Wohnort: Bayern

Re: TimeOut

Beitragvon sharkoozie am 12.08.2011, 01:06

Naja. Das hier ist das vorläufige Ergebnis. http://benne84.bplaced.net/ramon/

Mehr konnte ein Anfänger wie ich in der Zeit nicht hinkriegen. Vielleicht schaffe ich es morgen früh noch eine Beförderungsfunktion zu integrieren, sodass er immer einen Stern bekommt und befördert wird, wenn er sämtliche feuer gelöscht hat.

Wenn jemandem Fehler auffallen, bin ich dankbar für jede Rückmeldung.


mfG
sharkoozie
Mitglied
 
Beiträge: 26
Registriert: 04.07.2011, 20:44

Re: TimeOut

Beitragvon ulle am 12.08.2011, 08:27

Das ist ja putzig gemacht :D finde das ne klasse Idee und für einen Anfänger wie du selber von dir behauptest, gar nicht mal übel :D
ulle
Mitglied
 
Beiträge: 306
Registriert: 25.12.2008, 20:21

Re: TimeOut

Beitragvon sharkoozie am 12.08.2011, 12:26

Vielen Dank, Ulle! Sehr nett von dir. Denkst du ich brauche ein Impressum? Eher nicht oder?

kleiner Nachtrag: Falls noch jemand so einen Feuerwehrsüchtigen Zwerg zu Hause hat, kann das Feuerlöscher-Skript natürlich gerne übernommen werden.
sharkoozie
Mitglied
 
Beiträge: 26
Registriert: 04.07.2011, 20:44


Zurück zu JavaScript

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste