MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 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 { | ||