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

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


// Функция для увеличения яркости цвета
// Функция для увеличения яркости цвета
function brightenColor(color, factor) {
function brightenColor(color, factor) {
Строка 297: Строка 298:
         return 0.2126 * r + 0.7152 * g + 0.0722 * b;
         return 0.2126 * r + 0.7152 * g + 0.0722 * b;
     }
     }
     var r, g, b;
     var r, g, b;
     // Если цвет в формате rgba, преобразуем его в rgb
     // Если цвет в формате rgba, преобразуем его в rgb
     if (color.indexOf('rgba') === 0) {
     if (color.indexOf('rgba') === 0) {
Строка 322: Строка 321:
         return color; // Возвращаем оригинальный цвет, если формат не поддерживается
         return color; // Возвращаем оригинальный цвет, если формат не поддерживается
     }
     }
     var brightness = getBrightness(r, g, b);
     var brightness = getBrightness(r, g, b);
     var darkThreshold = 90;
     var darkThreshold = 90;
     var brightnessFactor = brightness < darkThreshold ? factor + 0.04 : factor;
     var brightnessFactor = brightness < darkThreshold ? factor + 0.04 : factor;
     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));
     b = Math.min(255, Math.floor(b * brightnessFactor));
     b = Math.min(255, Math.floor(b * brightnessFactor));
     return 'rgb(' + r + ', ' + g + ', ' + b + ')';
     return 'rgb(' + r + ', ' + g + ', ' + b + ')';
}
}
Строка 337: Строка 333:
function applyHighlighting() {
function applyHighlighting() {
     var tables = document.querySelectorAll('.wikitable:not(.no-highlight-table)');
     var tables = document.querySelectorAll('.wikitable:not(.no-highlight-table)');
   
 
     Array.prototype.forEach.call(tables, function(table) {
     Array.prototype.forEach.call(tables, function(table) {
         var tbody = table.querySelector('tbody');
         var tbody = table.querySelector('tbody');
Строка 351: Строка 347:


             rows.forEach(function(row) {
             rows.forEach(function(row) {
                 var cells = Array.prototype.slice.call(row.querySelectorAll('td'));
                 var cells = Array.prototype.slice.call(row.querySelectorAll('td, th'));


                 var rowspanCount = cells.filter(function(cell) {
                 var rowspanCount = cells.filter(function(cell) {
Строка 376: Строка 372:


             rows.forEach(function(row) {
             rows.forEach(function(row) {
                 var cells = Array.prototype.slice.call(row.querySelectorAll('td'));
                 var cells = Array.prototype.slice.call(row.querySelectorAll('td, th'));
                 var originalStyles = cells.map(function(cell) {
                 var originalStyles = cells.map(function(cell) {
                     return {
                     return {