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

Страница интерфейса MediaWiki
Новая страница: «// Функция переключения темы function toggleTheme() { const body = document.body; body.classList.toggle('dark-theme'); // Сохранение выбора в localStorage const isDark = body.classList.contains('dark-theme'); localStorage.setItem('theme', isDark ? 'dark' : 'light'); } // Загрузка сохраненной темы при открытии страницы document.addEventListener('DOMContentLoaded',...»
 
мНет описания правки
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
// Функция переключения темы
// Объявляем функцию глобально
function toggleTheme() {
window.toggleTheme = function() {
  const body = document.body;
    document.body.classList.toggle('dark-theme');
  body.classList.toggle('dark-theme');
    localStorage.setItem('theme', document.body.classList.contains('dark-theme') ? 'dark' : 'light');
 
};
  // Сохранение выбора в localStorage
  const isDark = body.classList.contains('dark-theme');
  localStorage.setItem('theme', isDark ? 'dark' : 'light');
}


// Загрузка сохраненной темы при открытии страницы
// Загрузка сохраненной темы
document.addEventListener('DOMContentLoaded', function() {
document.addEventListener('DOMContentLoaded', function() {
  const savedTheme = localStorage.getItem('theme');
    const theme = localStorage.getItem('theme');
  if (savedTheme === 'dark') {
    if (theme === 'dark') document.body.classList.add('dark-theme');
    document.body.classList.add('dark-theme');
  }
});
});


// Добавление кнопки переключения темы
// Добавляем кнопку через jQuery
$(function() {
mw.loader.using('jquery').then(function() {
  const button = $('<button>')
    $(function() {
    .text('🌓 Сменить тему')
        const button = $('<button>')
    .on('click', toggleTheme)
            .text('🌓 Тема')
    .css({
            .css({
      position: 'fixed',
                position: 'fixed',
      bottom: '20px',
                bottom: '20px',
      right: '20px',
                right: '20px',
      zIndex: '1000',
                zIndex: 1000,
      padding: '10px',
                padding: '10px',
      cursor: 'pointer'
                cursor: 'pointer',
                background: '#fff',
                border: '1px solid #000'
            })
            .on('click', toggleTheme);
 
        $('body').append(button);
     });
     });
  $('body').append(button);
});
});

Текущая версия от 13:51, 1 апреля 2025

// Объявляем функцию глобально window.toggleTheme = function() {

   document.body.classList.toggle('dark-theme');
   localStorage.setItem('theme', document.body.classList.contains('dark-theme') ? 'dark' : 'light');

};

// Загрузка сохраненной темы document.addEventListener('DOMContentLoaded', function() {

   const theme = localStorage.getItem('theme');
   if (theme === 'dark') document.body.classList.add('dark-theme');

});

// Добавляем кнопку через jQuery mw.loader.using('jquery').then(function() {

   $(function() {
       const button = $('<button>')
           .text('🌓 Тема')
           .css({
               position: 'fixed',
               bottom: '20px',
               right: '20px',
               zIndex: 1000,
               padding: '10px',
               cursor: 'pointer',
               background: '#fff',
               border: '1px solid #000'
           })
           .on('click', toggleTheme);
       $('body').append(button);
   });

});