-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
89 lines (76 loc) · 2.6 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
89
const startScreen = document.getElementById('startScreen');
const gameScreen = document.getElementById('gameScreen');
const answerText = document.getElementById('answer');
const gifImg = document.getElementById('gifImg');
const yesCount = document.getElementById('yesCount');
const noCount = document.getElementById('noCount');
const startBtn = document.getElementById('startBtn');
const askAgainBtn = document.getElementById('askAgainBtn');
const restartBtn = document.getElementById('restartBtn');
let yesCounter = 0;
let noCounter = 0;
const fetchAnswer = async () => {
const response = await fetch('https://yesno.wtf/api');
const data = await response.json();
return data;
};
const displayAnswer = async () => {
const { answer, image } = await fetchAnswer();
answerText.textContent = answer.toUpperCase();
answerText.classList.remove('yes', 'no'); // Remove both classes first
if (answer === 'yes') {
answerText.classList.add('yes'); // Add the 'yes' class
yesCounter++;
yesCount.textContent = yesCounter;
} else {
answerText.classList.add('no'); // Add the 'no' class
noCounter++;
noCount.textContent = noCounter;
}
gifImg.src = image;
};
const showGameScreen = () => {
startScreen.style.display = 'none';
gameScreen.style.display = 'block';
displayAnswer();
};
const resetGame = () => {
startScreen.style.display = 'block';
gameScreen.style.display = 'none';
yesCounter = 0;
noCounter = 0;
yesCount.textContent = '0';
noCount.textContent = '0';
};
startBtn.addEventListener('click', showGameScreen);
askAgainBtn.addEventListener('click', displayAnswer);
restartBtn.addEventListener('click', resetGame);
// Theme toggle functionality
const themeToggle = document.getElementById('theme-toggle');
const body = document.querySelector('body');
function toggleTheme() {
body.classList.toggle('dark-mode');
saveThemePreference();
}
function saveThemePreference() {
localStorage.setItem('theme', body.classList.contains('dark-mode') ? 'dark-mode' : 'light-mode');
localStorage.setItem('togglePosition', themeToggle.checked);
}
function loadThemePreference() {
const theme = localStorage.getItem('theme');
const togglePosition = localStorage.getItem('togglePosition');
if (theme === 'dark-mode') {
body.classList.add('dark-mode');
themeToggle.checked = true;
} else {
body.classList.remove('dark-mode');
themeToggle.checked = false;
}
if (togglePosition === 'true') {
themeToggle.checked = true;
} else {
themeToggle.checked = false;
}
}
themeToggle.addEventListener('change', toggleTheme);
window.addEventListener('load', loadThemePreference);