Skip to content

Commit 184e0de

Browse files
added comments
1 parent 17f971a commit 184e0de

File tree

1 file changed

+24
-42
lines changed

1 file changed

+24
-42
lines changed

app.js

Lines changed: 24 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,72 +3,54 @@ const baslatButonu = document.getElementById("start");
33
const durdurButonu = document.getElementById("stop");
44
const sifirlaButonu = document.getElementById("reset");
55

6-
// Kronometre değişkenleri
7-
let baslangicZamani;
6+
let baslangicZamani = 0;
87
let gecenZaman = 0;
9-
let calisiyor = false;
10-
let animationFrameId;
8+
let kronometre;
119

12-
// Kronometreyi başlat
1310
function kronometreyiBaslat() {
14-
if (!calisiyor) {
15-
calisiyor = true;
16-
baslangicZamani = Date.now() - gecenZaman;
17-
kronometreCalistir();
18-
baslatButonu.disabled = true;
19-
durdurButonu.disabled = false;
20-
}
11+
baslatButonu.disabled = true;
12+
durdurButonu.disabled = false;
13+
14+
const baslangicZamani = Date.now() - gecenZaman; // kronometre 1 sn once basladi ve bitti demek
15+
16+
kronometre = setInterval(() => {
17+
18+
gecenZaman = Date.now() - baslangicZamani; //date now suan sayama basla demek baslangic zamani hep zaten 0 demek
19+
zamaniGuncelle();
20+
}, 10); // Her 10 milisaniyede bir fonksiyonu calistirir ve calisan degerleri gecenzaman degiskenine atar degerler surekli degisir
21+
//setintervalin aldigi deger gecen zamanin icinde birikir. biriken deger zamaniguncelle fonksiyonunda kullanilir
2122
}
2223

23-
// Kronometreyi durdur
2424
function kronometreyiDurdur() {
25-
if (calisiyor) {
26-
calisiyor = false;
27-
cancelAnimationFrame(animationFrameId);
28-
baslatButonu.disabled = false;
29-
durdurButonu.disabled = true;
30-
}
25+
clearInterval(kronometre);
26+
baslatButonu.disabled = false;
27+
durdurButonu.disabled = true;
3128
}
3229

33-
// Kronometreyi sıfırla
3430
function kronometreyiSifirla() {
35-
calisiyor = false;
36-
cancelAnimationFrame(animationFrameId);
31+
clearInterval(kronometre);
3732
gecenZaman = 0;
3833
zamaniGuncelle();
3934
baslatButonu.disabled = false;
4035
durdurButonu.disabled = true;
4136
}
4237

43-
// Kronometreyi çalıştır
44-
function kronometreCalistir() {
45-
if (calisiyor) {
46-
gecenZaman = Date.now() - baslangicZamani;
47-
zamaniGuncelle();
48-
animationFrameId = requestAnimationFrame(kronometreCalistir);
49-
}
50-
}
51-
52-
// Gösterilen zamanı güncelle
5338
function zamaniGuncelle() {
5439
const toplamMilisaniye = gecenZaman;
55-
const dakikalar = Math.floor(toplamMilisaniye / (1000 * 60));
56-
const saniyeler = Math.floor((toplamMilisaniye % (1000 * 60)) / 1000);
40+
const dakikalar = Math.floor(toplamMilisaniye / (1000 * 60)); //60bin milisaniye 1dk oldugu icin boluyoruz
41+
const saniyeler = Math.floor((toplamMilisaniye % (1000 * 60)) / 1000);
5742
const milisaniyeler = Math.floor((toplamMilisaniye % 1000) / 10);
5843

5944
zamanGostergeElementi.innerHTML = `
60-
<h1 class="text">Hogwarts <span>Saati</span> 🐦‍🔥</h1>
61-
<span>${String(dakikalar).padStart(2, "0")}:</span>${String(
62-
saniyeler
63-
).padStart(2, "0")}:${String(milisaniyeler).padStart(2, "0")}
64-
`;
45+
<h1 class="text">Hogwarts <span>Saati</span> 🐦‍🔥</h1>
46+
<span>${String(dakikalar).padStart(2, "0")}:</span>${String(saniyeler).padStart(2, "0")}:${String(milisaniyeler).padStart(2, "0")}
47+
`; // padstart sayinin basina 0 koyar ve 2 haneli yapar yalniz sadece stringler ile calisir bu yuzden aldigimiz dakikalar saniyeler mili saniyeler degiskenlerini
48+
// once sstringe cevirmemiz gerekiyor sonra padsttart metodunu uyguluyoruz.
6549
}
6650

67-
// Olay dinleyicileri
6851
baslatButonu.addEventListener("click", kronometreyiBaslat);
6952
durdurButonu.addEventListener("click", kronometreyiDurdur);
7053
sifirlaButonu.addEventListener("click", kronometreyiSifirla);
7154

72-
// Başlangıç durumu
7355
zamaniGuncelle();
74-
durdurButonu.disabled = true;
56+
durdurButonu.disabled = true;

0 commit comments

Comments
 (0)