Нужна помощь в изменении цвета SVG в функции - Skycons - PullRequest
0 голосов
/ 15 апреля 2019

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

1 Ответ

1 голос
/ 16 апреля 2019

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

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

  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...