genau so ist es aktuell
Nur das die Timer unterschiedlich heißen Aber ich bin gern für vorschläge offen
Man kann ja nur dazu lernen
genau so ist es aktuell
Nur das die Timer unterschiedlich heißen Aber ich bin gern für vorschläge offen
Man kann ja nur dazu lernen
Ja ich sag ja mind. 1,5h
Naja die Timer dienen nur als Erinnerung für Sachen
Eigentlich wäre das die beste Methode, man hat dann nur das Problem, dass sie bei einem erneuten Aufruf nicht mehr greifbar ist. Man müsste das Ganze dann objektorientiert anlegen, d. h. diese Variable im Objekt definieren, das nur einmal erzeugt wird. Und dann die Funktionen darin, die nötig sind.
Das ist sicher möglich, aber wahrscheinlich wirst Du dann auch Teile des Javascript vervielfachen müssen. IMO nicht so günstig und ich würde den objektorientierten Ansatz vorziehen.
Ja ich habe das ganze jetzt 5x hintereinander Aber mehr kommt auch nicht wirklich auf die Seite
Das hat den Vorteil, dass der Timer auch dann relativ genau ist, wenn der Reload der Seite ggf. mal 2 bis 3 Sekunden dauert.
Das ist kein Problem denn die Timer gehen mind. 1,5h da kommt es auf die sekunde nicht ganz genau an
Also wenn ich den Eingangspost richtig gelesen habe, gibt es ein Eingabefeld, in dem man eine Zahl ( Sekunden? ) eingibt, die als Timer-Laufzeit interpretiert wird. Bei Klick auf eine Checkbox soll der Timer dann die Anzahl der Sekunden runterlaufen.
Nein die Zeit ist fest vorgegeben in dem Feld:
<input type="checkbox" id="unter" value="180" onclick="TimerUnter()"> <span class="slider"></span> </label>
value = 180 minuten
Ah habs problem gefunden... ich hab die
var timer in die funktion mit rein weil ich das ganze 5 mal habe, also 5 Timer.. werde jetzt einfach 5 timer Variablen machen und die einfach oben deklarieren
Edit:
so gehts jetzt
Vielen vielen Dank für die ganze Hilfe
Okay super danke es funktioniert jetzt Aber nur wenn ich den slider auf Off stelle und dann neulade, dann ist der Timer zurückgesetzt.
Naja ich kann ja noch nen Timer mit setInterval(function (){}); drumrum setzen das alle sekunde die seite nue geladen wird
oder gibts ne elegantere Lösung?
EDIT:
Hab vergessen den Codeabschnitt einzufügen:
Damit löscht er zwar beim slide auf OFF den Timer aber nur für 1 Sekunde, dann ist er wieder da
Ich hab das jetzt alles eingefügt aber leider lässt er sich nicht zurücksetzen. Das mit dem löschen hab ich auch gemacht aber leider gehts nicht
Yeah Vielen Dank
Es funktioniert
ich habe allerdings noch eine kleine Frage:
Wenn ich jetzt bei der "Checkbox" den Haken rausnehme bzw ich habs ja über nen slider, den auf Off stelle das dann der Timer abbricht und ich ihn erst wieder starten kann wenn ich den slider auf ON stelle.
Also praktisch eine Reset-funktion
Wie kann man das am besten realisieren?
Vielen vielen Dank für die Mühe
Leider funktioniert es nicht Kann es sein das ich villt i.wo noch was einstellen muss oder eine andere jQuery benutzen muss? Habe aktuell diese:
Und das ganze läuft auf einem Raspberry Pi 3B+, falls das ausschlaggebend ist
Danke das kann ich mir ja mal anschauen allerdings weiß ich nicht direkt wie ich es umschreibe, sodass die "zeit" die gespeichert ist aufgerufen wird und nicht nue gezählt wird
Hallo zusammen
Ich komme bei meinem "kleinen" Projekt nicht mehr weiter. Habe leider auch nicht so die Kenntnisse in Javascript.
Aktuell stehe ich vor folgendem Probelm:
Auf meiner Website werden Timer aktiviert per Checkbox, welche dann eine Zeit x herunter laufen. Allerdings soll bei dem laden der Seite der aktuelle Timer nicht abgebrochen werden, sondern weiterlaufen und erst resettet werden wenn ich die Checkbox deaktiviere.
Folgenden Code besitze ich:
Javascript:
<!--
function TimerUnter() {
var isChecked = document.getElementById("unter").checked;
var minutes = $( "#unter" ).val();
var target_date = new Date().getTime() + ((minutes * 60 ) * 1000); // set the countdown date
var time_limit = ((minutes * 60 ) * 1000);
//set actual timer
setTimeout(
function()
{
//alert( 'done' );
}, time_limit );
var days, hours, minutes, seconds; // variables for time units
var countdown = document.getElementById("tiles"); // get tag element
if (isChecked == true){
getCountdown();
setInterval(function () { getCountdown(); }, 1000);
function getCountdown(){
// find the amount of "seconds" between now and target
var current_date = new Date().getTime();
var seconds_left = (target_date - current_date) / 1000;
if ( seconds_left >= 0 ) {
console.log(time_limit);
if ( (seconds_left * 1000 ) < ( time_limit / 2 ) ) {
$( "#tiles" ).removeClass("color-full");
$( "#tiles" ).addClass("color-half");
}
if ( (seconds_left * 1000 ) < ( time_limit / 4 ) ) {
$( "#tiles" ).removeClass("color-half");
$( "#tiles" ).addClass("color-empty");
}
days = pad( parseInt(seconds_left / 86400) );
seconds_left = seconds_left % 86400;
hours = pad( parseInt(seconds_left / 3600) );
seconds_left = seconds_left % 3600;
minutes = pad( parseInt(seconds_left / 60) );
seconds = pad( parseInt( seconds_left % 60 ) );
// format countdown string + set tag value
countdown.innerHTML = "<span>" + hours + ":</span><span>" + minutes + ":</span><span>" + seconds + "</span>";
}
}
function pad(n) {
return (n < 10 ? '0' : '') + n;
}
}
else if (isChecked == false){
$( "#tiles" ).removeClass("color-empty");
$( "#tiles" ).addClass("color-full");
}
}
-->
Alles anzeigen
Ich gebe auch zu das dieser Code nicht von mir ist sondern von einer Website und ich habe ihn ein bisschen modifiziert für meine Anwenung.
HTML:
<div class="toggle text">
<label style="left: -1.5em;"> Unter
<input type="checkbox" id="unter" value="180" onclick="TimerUnter()"> <span class="slider"></span> </label>
</div>
<br>
<div id="countdown">
<div id="tiles" class="color-full"></div>
</div>
Villt kann mir hier jmd weiterhlefen
HTML-Seminar.de - mit Videos zum schnellen Lernen, wie man eine Website selbst erstellt.