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

Страница интерфейса MediaWiki
мНет описания правки
мНет описания правки
 
(не показано 8 промежуточных версий этого же участника)
Строка 3: Строка 3:
// console.log("Привет");
// console.log("Привет");
/*_____________________*/
/*_____________________*/
// Проверяем загрузку jQuery
mw.loader.using('jquery').then(function() {
mw.loader.using('jquery').then(function() {
   $(function() {
   $(document).ready(function() {
     // Создаем контейнер, если его нет
     // Удаляем старые элементы
     var $customContainer = $('.citizen-header__custom-bottom');
     $('.citizen-header__custom-bottom, .citizen-panel-overlay').remove();
     if ($customContainer.length === 0) {
      
      $customContainer = $('<div>')
    // Создаем новую панель
        .addClass('citizen-header__custom-bottom')
    const $panel = $('<div>')
        .appendTo('.citizen-header');
      .addClass('citizen-header__custom-bottom')
     }
      .hide();
   
    // Создаем оверлей
    const $overlay = $('<div>')
      .addClass('citizen-panel-overlay')
      .hide();
 
    // Добавляем элементы на страницу
     $('body').append($overlay, $panel);


     // Пример данных (замените на свои!)
     // Контент панели
     var items = [
     const items = [
       {  
       {
        type: 'image',
         src: 'https://wiki.ss220.club/resources/assets/logo.png',
         src: 'https://wiki.ss220.club/resources/assets/logo.png',  
         link: 'https://wiki.ss220.club',
         link: 'https://wiki.ss220.club',
         width: '40px'
         width: '40px'
       },
       },
       {
       {
        type: 'image',
         src: 'https://bs.ss220.club/resources/assets/logo.png',
         src: 'https://bs.ss220.club/resources/assets/logo.png',
         link: 'https://bs.ss220.club',
         link: 'https://bs.ss220.club',
Строка 30: Строка 35:
     ];
     ];


     // Очищаем контейнер перед добавлением
     // Заполняем панель
     $customContainer.empty();
     $panel.append(
      items.map(item =>
        $('<a>')
          .attr('href', item.link)
          .append(
            $('<img>')
              .attr('src', item.src)
              .css('width', item.width)
          )
          .css({
            display: 'block',
            transition: '0.2s transform'
          })
          .hover(
            () => $(this).css('transform', 'scale(1.1)'),
            () => $(this).css('transform', 'none')
          )
      )
    );


     // Добавляем элементы
     // Управление видимостью
     items.forEach(function(item) {
     function togglePanel(show) {
       var $element;
       $panel.toggle(show);
      if (item.type === 'image') {
       $overlay.toggle(show);
        $element = $('<img>')
       $('body').toggleClass('citizen-panel-active', show);
          .attr('src', item.src)
    }
          .css('width', item.width);
       } else {
        $element = $('<span>').text(item.text);
       }
 
      var $link = $('<a>')
        .attr('href', item.link)
        .append($element)
        .css({
          display: 'inline-block',
          margin: '0 10px'
        });


      $customContainer.append($link);
    // Открытие/закрытие
     });
    $overlay.click(() => togglePanel(false));
     $(document).on('keyup', e => e.key === 'Escape' && togglePanel(false));


     // Принудительно показываем контейнер
     // Инициализация
     $customContainer.css('display', 'flex');
     togglePanel(true); // Для теста - сразу показать панель
   });
   });
});
});

Текущая версия от 06:47, 2 апреля 2025

/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */

// console.log("Привет");
/*_____________________*/
mw.loader.using('jquery').then(function() {
  $(document).ready(function() {
    // Удаляем старые элементы
    $('.citizen-header__custom-bottom, .citizen-panel-overlay').remove();
    
    // Создаем новую панель
    const $panel = $('<div>')
      .addClass('citizen-header__custom-bottom')
      .hide();
    
    // Создаем оверлей
    const $overlay = $('<div>')
      .addClass('citizen-panel-overlay')
      .hide();

    // Добавляем элементы на страницу
    $('body').append($overlay, $panel);

    // Контент панели
    const items = [
      {
        src: 'https://wiki.ss220.club/resources/assets/logo.png',
        link: 'https://wiki.ss220.club',
        width: '40px'
      },
      {
        src: 'https://bs.ss220.club/resources/assets/logo.png',
        link: 'https://bs.ss220.club',
        width: '40px'
      }
    ];

    // Заполняем панель
    $panel.append(
      items.map(item => 
        $('<a>')
          .attr('href', item.link)
          .append(
            $('<img>')
              .attr('src', item.src)
              .css('width', item.width)
          )
          .css({
            display: 'block',
            transition: '0.2s transform'
          })
          .hover(
            () => $(this).css('transform', 'scale(1.1)'),
            () => $(this).css('transform', 'none')
          )
      )
    );

    // Управление видимостью
    function togglePanel(show) {
      $panel.toggle(show);
      $overlay.toggle(show);
      $('body').toggleClass('citizen-panel-active', show);
    }

    // Открытие/закрытие
    $overlay.click(() => togglePanel(false));
    $(document).on('keyup', e => e.key === 'Escape' && togglePanel(false));

    // Инициализация
    togglePanel(true); // Для теста - сразу показать панель
  });
});