MediaWiki:Common.js: различия между версиями
Kerisar (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 282: | Строка 282: | ||
// Функция для увеличения яркости цвета | // Функция для увеличения яркости цвета | ||
function brightenColor(color, factor) { | function brightenColor(color, factor) { | ||
function getBrightness(r, g, b) { | |||
return 0.2126 * r + 0.7152 * g + 0.0722 * b; | |||
} | |||
var rgbValues = color.match(/\d+(\.\d+)?/g); | |||
var r = parseInt(rgbValues[0], 10); | |||
var g = parseInt(rgbValues[1], 10); | |||
var b = parseInt(rgbValues[2], 10); | |||
var a = rgbValues.length === 4 ? parseFloat(rgbValues[3]) : 1; | |||
var brightness = getBrightness(r, g, b); | |||
if (factor === undefined) { | |||
if (brightness < 30) { | |||
factor = 10; | |||
} else if (brightness <= 55) { | |||
factor = 5; | |||
} else if (brightness < 140) { | |||
factor = 3; | |||
} else if (brightness < 180) { | |||
factor = 2; | |||
} else { | |||
factor = 0; | |||
} | |||
} | |||
// Добавляем фактор вместо умножения | |||
r = Math.min(255, r + factor); | |||
g = Math.min(255, g + factor); | |||
b = Math.min(255, b + factor); | |||
return a < 1 ? 'rgba(' + r + ', ' + g + ', ' + b + ', ' + a + ')' : 'rgb(' + r + ', ' + g + ', ' + b + ')'; | |||
} | } | ||
// Функция для подсветки ячеек в таблице при наведении | // Функция для подсветки ячеек в таблице при наведении | ||