von 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ß.