MediaWiki:Vector.js: различия между версиями

Нет описания правки
Метки: ручная отмена отменено
Нет описания правки
Метка: отменено
Строка 1: Строка 1:
$(document).ready(function() {
$(document).ready(function() {
  var button = document.createElement("button");
    var button = document.createElement("button");
  button.innerHTML = "Сменить тему";
    button.innerHTML = "Сменить тему";
  button.className = "theme-button";
    button.className = "theme-button";
  button.onclick = toggleTheme;
    button.onclick = toggleTheme;


  var container = document.getElementById("p-personal");
    var container = document.getElementById("p-personal");
  if (container) {
    if (container) {
      container.parentNode.insertBefore(button, container);
        container.parentNode.insertBefore(button, container);
  }
    }


  var isLightTheme = localStorage.getItem("isLightTheme");
    var isLightTheme = localStorage.getItem("isLightTheme");
  if (isLightTheme === "true") {
    if (isLightTheme === "true") {
      document.documentElement.classList.add('light');
        document.documentElement.setAttribute('data-theme', 'light');
  } else {
    } else {
      document.documentElement.classList.remove('light');
        document.documentElement.setAttribute('data-theme', 'dark');
  }
    }
});
});


function toggleTheme() {
function toggleTheme() {
  var isLightTheme = document.documentElement.classList.toggle('light');
    const root = document.documentElement;
  localStorage.setItem("isLightTheme", isLightTheme);
    const currentTheme = root.getAttribute('data-theme');
    const newTheme = currentTheme === 'light' ? 'dark' : 'light';
    root.setAttribute('data-theme', newTheme);
 
    localStorage.setItem("isLightTheme", newTheme === 'light');
}
}

Версия от 17:06, 4 мая 2024

$(document).ready(function() {
    var button = document.createElement("button");
    button.innerHTML = "Сменить тему";
    button.className = "theme-button";
    button.onclick = toggleTheme;

    var container = document.getElementById("p-personal");
    if (container) {
        container.parentNode.insertBefore(button, container);
    }

    var isLightTheme = localStorage.getItem("isLightTheme");
    if (isLightTheme === "true") {
        document.documentElement.setAttribute('data-theme', 'light');
    } else {
        document.documentElement.setAttribute('data-theme', 'dark');
    }
});

function toggleTheme() {
    const root = document.documentElement;
    const currentTheme = root.getAttribute('data-theme');
    const newTheme = currentTheme === 'light' ? 'dark' : 'light';
    root.setAttribute('data-theme', newTheme);

    localStorage.setItem("isLightTheme", newTheme === 'light');
}