Перейти к содержанию

MediaWiki:Common.js

Материал из Horny Jail WIKI

Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.
mw.hook('wikipage.content').add(function ($content) {
  var $buttons = $content.find('.hj-chaos-tab-button');
  var $blocks  = $content.find('.hj-chaos-block');
  var root     = $content.closest('.hj-chaos-container')[0];

  if (!$buttons.length || !$blocks.length) return;

  function darken(rgb, k){
    var m = rgb.match(/\d+/g) || [17,17,17];
    var r = Math.round(m[0]*(1-k)), g = Math.round(m[1]*(1-k)), b = Math.round(m[2]*(1-k));
    return 'rgb('+r+', '+g+', '+b+')';
  }

  function applyPanelFrom($btn){
    var c = getComputedStyle($btn[0]).backgroundColor;
    root.style.setProperty('--panel-bg', c);
    root.style.setProperty('--card-bg', darken(c, 0.18));
  }

  var $active = $buttons.filter('.active');
  if ($active.length) applyPanelFrom($active);

  $buttons.off('click.hjChaos').on('click.hjChaos', function () {
    var $btn = $(this);
    var key  = $btn.data('chaos');

    $buttons.removeClass('active');
    $btn.addClass('active');

    $blocks.removeClass('active');
    $blocks.filter('[data-chaos="' + key + '"]').addClass('active');

    applyPanelFrom($btn);
  });
});