Я работаю с погодным приложением на основе этого YouTube видео.
У меня есть следующий код, и я использую Skycons.js
Проблема, с которой я сталкиваюсь, заключается в том, что сейчас я пытаюсь реализовать темный режим. и у меня большая часть этого работает, однако я не могу найти способ изменить Skycon с черного на белый, а затем обратно на черный, когда мой переключатель темного режима включен.
Вот мой код:
//pulls Skycons from skycons.js
function setIcons(icon, iconID) {
const skycons = new Skycons({color: "black"});
const currentIcon = icon.replace(/-/g, "_").toUpperCase();
skycons.play();
return skycons.set(iconID, Skycons[currentIcon]);
}
// Dark Mode Toggle Button
function darkMode(obj) {
if ($(obj).is(":checked")){
$("body").addClass("dark");
} else {
$("body").removeClass("dark");
}
}
В идеале я хочу, чтобы моя кнопка могла включать и выключать темный режим, который должен менять мой SVG на белый и наоборот, а также для текста и фона с синего градиента на фиолетовый градиент.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Код необходимо было реорганизовать, чтобы включить в него другие функции.
let currentMode = 'light'
window.addEventListener("load", () => {
getWeather();
});
function getWeather() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(position => {
const long = position.coords.longitude; const lat = position.coords.latitude;
const proxy = "https://cors-anywhere.herokuapp.com/";
const api = `${proxy}https://api.darksky.net/forecast/3dfa731ae990c93b6909c90958e9bc36/${lat},${long}`;
fetch(api)
.then(response => {
return response.json();
})
.then(data => {
loadData(data)
});
});
}
}...
// Dark Mode Toggle Button
function toggleMode(sourceCheckbox) {
const newMode = currentMode === 'light' ? 'dark' : 'light'
currentMode = newMode
getWeather();
if ($(sourceCheckbox).is(":checked")) {
$("body").addClass("dark");
} else {
$("body").removeClass("dark");
}
}