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

мНет описания правки
мНет описания правки
Строка 293: Строка 293:


// Функция для увеличения яркости цвета
// Функция для увеличения яркости цвета
function brightenColor(color, factor) {
function brightenColor(color, factor = 1.03) {
     function getBrightness(r, g, b) {
     function getBrightness(r, g, b) {
         return 0.2126 * r + 0.7152 * g + 0.0722 * b;
         return 0.2126 * r + 0.7152 * g + 0.0722 * b;
Строка 315: Строка 315:


     var brightness = getBrightness(r, g, b);
     var brightness = getBrightness(r, g, b);
   
    // Начальный коэффициент
    var brightnessFactor = factor;


     // Цикл для уменьшения увеличения яркости при более ярких цветах
     // Чем темнее цвет, тем выше фактор, чем светлее, тем меньше он увеличивается
     for (var i = 0; i < brightness; i += 10) {
     var brightnessFactor;
         brightnessFactor -= 0.005; // Уменьшаем коэффициент осветления с увеличением яркости
    if (brightness < 60) {
        brightnessFactor = factor + 0.5;  
    } else if (brightness < 120) {
        brightnessFactor = factor + 0.3;
    } else if (brightness < 180) {
         brightnessFactor = factor + 0.1;
    } else {
        brightnessFactor = factor;
     }
     }


     // Окончательный коэффициент не должен быть меньше 1 (чтобы не затемнять цвет)
     // Применяем фактор яркости
    brightnessFactor = Math.max(brightnessFactor, 1);
 
     r = Math.min(255, Math.floor(r * brightnessFactor));
     r = Math.min(255, Math.floor(r * brightnessFactor));
     g = Math.min(255, Math.floor(g * brightnessFactor));
     g = Math.min(255, Math.floor(g * brightnessFactor));
Строка 415: Строка 417:
                             if (!innerCell.hasAttribute('rowspan') || innerCell.getAttribute('rowspan') === '1') {
                             if (!innerCell.hasAttribute('rowspan') || innerCell.getAttribute('rowspan') === '1') {
                                 // Увеличиваем яркость фона и текста ячейки при наведении
                                 // Увеличиваем яркость фона и текста ячейки при наведении
                                 innerCell.style.backgroundColor = brightenColor(originalStyles[innerIndex].backgroundColor, 1.03);
                                 innerCell.style.backgroundColor = brightenColor(originalStyles[innerIndex].backgroundColor);
                                 innerCell.style.color = brightenColor(originalStyles[innerIndex].color, 1.03);
                                 innerCell.style.color = brightenColor(originalStyles[innerIndex].color);
                             }
                             }
                         });
                         });