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',...»
 
мНет описания правки
Строка 18: Строка 18:


// Добавление кнопки переключения темы
// Добавление кнопки переключения темы
$(function() {
// Добавление кнопки в раздел "Инструменты" левого меню
  const button = $('<button>')
 
    .text('🌓 Сменить тему')
mw.hook('ve.activationComplete').add(function() {
     .on('click', toggleTheme)
     mw.util.addPortletLink(
    .css({
        'p-tb', // ID раздела (p-tb = инструменты)
      position: 'fixed',
        '#',
      bottom: '20px',
        '🌓 Тема',
      right: '20px',
        'theme-switcher',
      zIndex: '1000',
        'Переключить цветовую тему',
      padding: '10px',
        null,
      cursor: 'pointer'
        $('#pt-preferences').next()
    ).find('a').on('click', function(e) {
        e.preventDefault();
        toggleTheme();
     });
     });
  $('body').append(button);
});
});

Версия от 13:36, 1 апреля 2025

// Функция переключения темы 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', function() {

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

});

// Добавление кнопки переключения темы // Добавление кнопки в раздел "Инструменты" левого меню

mw.hook('ve.activationComplete').add(function() {

   mw.util.addPortletLink(
       'p-tb', // ID раздела (p-tb = инструменты)
       '#',
       '🌓 Тема',
       'theme-switcher',
       'Переключить цветовую тему',
       null,
       $('#pt-preferences').next()
   ).find('a').on('click', function(e) {
       e.preventDefault();
       toggleTheme();
   });

});