|
|
|
@ -1,4 +1,6 @@
|
|
|
|
let timerInterval;
|
|
|
|
let timerInterval;
|
|
|
|
|
|
|
|
let elapsedTime = 0; // Zeit, die bereits vergangen ist, bevor der Timer pausiert wurde
|
|
|
|
|
|
|
|
let isRunning = false; // Zustand des Timers (läuft oder pausiert)
|
|
|
|
const timerDisplay = document.getElementById('timerDisplay');
|
|
|
|
const timerDisplay = document.getElementById('timerDisplay');
|
|
|
|
const secondsDisplay = document.getElementById('secondsDisplay');
|
|
|
|
const secondsDisplay = document.getElementById('secondsDisplay');
|
|
|
|
const startButton = document.getElementById('startTimer');
|
|
|
|
const startButton = document.getElementById('startTimer');
|
|
|
|
@ -16,7 +18,7 @@ function displayTime(seconds) {
|
|
|
|
secondsDisplay.textContent =
|
|
|
|
secondsDisplay.textContent =
|
|
|
|
":" +
|
|
|
|
":" +
|
|
|
|
String(secs).padStart(2, '0');
|
|
|
|
String(secs).padStart(2, '0');
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
function timerIsRunning() {
|
|
|
|
function timerIsRunning() {
|
|
|
|
document.getElementById('startTimer').classList.add('d-none')
|
|
|
|
document.getElementById('startTimer').classList.add('d-none')
|
|
|
|
@ -38,26 +40,44 @@ function timerIsPause() {
|
|
|
|
document.getElementById('timerDisplay').style.color = 'rdb(43,100,110)'
|
|
|
|
document.getElementById('timerDisplay').style.color = 'rdb(43,100,110)'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Timer starten und Startzeit im localStorage speichern
|
|
|
|
// Timer starten und Startzeit im localStorage speichern
|
|
|
|
startButton.addEventListener('click', () => {
|
|
|
|
startButton.addEventListener('click', () => {
|
|
|
|
const startTime = Date.now();
|
|
|
|
if (!isRunning) {
|
|
|
|
localStorage.setItem('startTime', startTime);
|
|
|
|
const startTime = Date.now() - elapsedTime * 1000; // Berücksichtige die bereits vergangene Zeit
|
|
|
|
timerIsRunning();
|
|
|
|
localStorage.setItem('startTime', startTime);
|
|
|
|
startTimer(startTime);
|
|
|
|
localStorage.setItem('elapsedTime', elapsedTime); // Speichere auch die vergangene Zeit
|
|
|
|
|
|
|
|
startTimer(startTime);
|
|
|
|
|
|
|
|
timerIsRunning();
|
|
|
|
|
|
|
|
isRunning = true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Timer pausieren
|
|
|
|
|
|
|
|
pauseButton.addEventListener('click', () => {
|
|
|
|
|
|
|
|
if (isRunning) {
|
|
|
|
|
|
|
|
clearInterval(timerInterval);
|
|
|
|
|
|
|
|
timerIsPause();
|
|
|
|
|
|
|
|
isRunning = false;
|
|
|
|
|
|
|
|
const savedStartTime = localStorage.getItem('startTime');
|
|
|
|
|
|
|
|
if (savedStartTime) {
|
|
|
|
|
|
|
|
elapsedTime = Math.floor((Date.now() - savedStartTime) / 1000); // Berechne die vergangene Zeit
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
localStorage.setItem('elapsedTime', elapsedTime); // Speichere die vergangene Zeit
|
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// Timer zurücksetzen und Speicher leeren
|
|
|
|
// Timer zurücksetzen und Speicher leeren
|
|
|
|
resetButton.addEventListener('click', () => {
|
|
|
|
resetButton.addEventListener('click', () => {
|
|
|
|
clearInterval(timerInterval);
|
|
|
|
clearInterval(timerInterval);
|
|
|
|
localStorage.removeItem('startTime');
|
|
|
|
elapsedTime = 0;
|
|
|
|
timerIsReset();
|
|
|
|
timerIsReset();
|
|
|
|
|
|
|
|
isRunning = false;
|
|
|
|
|
|
|
|
localStorage.removeItem('startTime');
|
|
|
|
|
|
|
|
localStorage.removeItem('elapsedTime');
|
|
|
|
displayTime(0);
|
|
|
|
displayTime(0);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
pauseButton.addEventListener('click', () => {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Timer-Funktion, die die vergangene Zeit seit dem Start berechnet
|
|
|
|
// Timer-Funktion, die die vergangene Zeit seit dem Start berechnet
|
|
|
|
function startTimer(startTime) {
|
|
|
|
function startTimer(startTime) {
|
|
|
|
clearInterval(timerInterval); // Vorherigen Timer stoppen, falls vorhanden
|
|
|
|
clearInterval(timerInterval); // Vorherigen Timer stoppen, falls vorhanden
|
|
|
|
@ -70,8 +90,10 @@ function startTimer(startTime) {
|
|
|
|
// Überprüfen, ob ein Timer beim Laden der Seite bereits läuft
|
|
|
|
// Überprüfen, ob ein Timer beim Laden der Seite bereits läuft
|
|
|
|
window.addEventListener('load', () => {
|
|
|
|
window.addEventListener('load', () => {
|
|
|
|
const savedStartTime = localStorage.getItem('startTime');
|
|
|
|
const savedStartTime = localStorage.getItem('startTime');
|
|
|
|
if (savedStartTime) {
|
|
|
|
elapsedTime = parseInt(localStorage.getItem('elapsedTime')) || 0;
|
|
|
|
|
|
|
|
if (savedStartTime && !isRunning) {
|
|
|
|
startTimer(parseInt(savedStartTime));
|
|
|
|
startTimer(parseInt(savedStartTime));
|
|
|
|
timerIsRunning();
|
|
|
|
timerIsRunning();
|
|
|
|
|
|
|
|
isRunning = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|