Нужна помощь в изменении цвета SVG в функции - Skycons

Я работаю с погодным приложением на основе этого 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 на белый и наоборот, а также для текста и фона с синего градиента на фиолетовый градиент.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
103
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Код необходимо было реорганизовать, чтобы включить в него другие функции.

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");

  }
}

Другие вопросы по теме