我们说我有两张桌子,一张有白色的行,一张有绿色的行。
我目前使用stripeTable代码为白色背景执行此操作:
function stripeTables($tables) {
$("tbody tr:odd td,tbody tr:odd th", $tables).css("background-color", "#f7f6f6");
}
但是我想要一种能使奇数行变得更暗的功能,所以如果基本背景不是白色,它仍然只是变化了一些RGB'值'较暗' 以便我不必选择其他颜色。
有关如何快速完成此操作的任何想法?我正在考虑读取背景的RGB值,然后为它计算一个更暗的值,但我对如何做到这一点毫无头绪。
更新
我对 jquery-color 解决方案的问题是我需要提供当前的bg颜色, 因为可以在第t级和第3级以及级别和桌面级别以及上面的任何其他元素上设置,我无法确定我的桌子将颜色X作为背景。至少在使用$(this).css(' background-color')时,(如果在CSS级别没有定义背景颜色,则返回undefined,并且应用条纹颜色到。
以jQuery and colour calculation
呈现的方式使用jsColors getRGB函数function stripeTables($tables) {
// $("tbody tr:odd td,tbody tr:odd th", $tables).css("background-color", "#f7f6f6");
$("tbody",$tables).each(function () {
$("tr:odd td,tr:odd th", $(this)).css('background-color', function () {
var rgb = getRGB($(this).css('background-color'));
if (!rgb) {
rgb = getRGB("#FFF");
}
for (var i = 0; i < rgb.length; i++) {
rgb[i] = Math.max(0, rgb[i] - 10);
}
var newColor = 'rgb(' + rgb[0] + ',' + rgb[1] + ',' + rgb[2] + ')';
return newColor;
}, 1500);
});
}
代码现在仅适用于白色背景:
具体更新问题,我需要了解元素的ACTUAL背景颜色hex / rgb,即使它没有设置在CSS级别