-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
88 lines (56 loc) · 1.7 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
const quoteDisplayElement= document.getElementById('quoteDisplay');
const quoteInputElement= document.getElementById('quoteInput');
const timerElement=document.getElementById('timer');
let correct=true;
quoteInputElement.addEventListener("input",()=>{
const arrayQuote= quoteDisplayElement.querySelectorAll('span')
const arrayInput=quoteInputElement.value.split('')
arrayQuote.forEach((characterSpan,index)=>{
const character= arrayInput[index];
if( character==null)
{
characterSpan.classList.remove('correct');
characterSpan.classList.remove('incorrect');
correct=false;
}
else if(character===characterSpan.innerText)
{
characterSpan.classList.add('correct');
characterSpan.classList.remove('incorrect');
}
else {
characterSpan.classList.remove('correct');
characterSpan.classList.add('incorrect');
correct=false;
}
})
if(correct) renderNewQuote()
})
function fetchApi(){
return fetch('https://api.quotable.io/random').then(response=>response.json()
).then(data=>data.content)
}
async function renderNewQuote(){
const quote=await fetchApi();
quoteDisplayElement.innerHTML= '';
quote.split('').forEach(character => {
const characterSpan=document.createElement('span');
characterSpan.innerText=character;
quoteDisplayElement.appendChild(characterSpan);
});
quoteInputElement.value=null;
startTimer();
}
let startTime;
function startTimer(){
timerElement.innerText=0;
startTime=new Date();
console.log(timer,timerElement)
setInterval(()=>{
timerElement.innerText= getTimerTime()
},1000)
}
function getTimerTime(){
return Math.floor((new Date()- startTime)/ 1000)
}
renderNewQuote()