我正在建立一个新网站,需要根据不断变化的背景颜色改变文本颜色以保持对比度。我已经搜索了很多网页,但没有一种方法不涉及Sass能够解决问题...
我尝试过一些JavaScript代码,但只有在手动更改背景为固定颜色时才有效。
我的当前文件: https://codepen.io/jonathanlee/pen/wZXvRY
这个实例是我正在工作的网站https://nepmelbourne.com/q上的备用首页。我有一个动态背景,但是有些颜色与我的白色文本对比不好。
我尝试过一些JavaScript代码,但只有在手动更改背景为固定颜色时才有效。
我的当前文件: https://codepen.io/jonathanlee/pen/wZXvRY
var color = function getRandomColor() {
var letters = '0123456789ABCDEF'.split('');
var color = '#';
for (var i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
setInterval(function() {
document.getElementById("test").style.backgroundColor = color(); //() to execute the function!
}, 3000);
var ww = function isDarkColor(rgb) {
return Math.round((
parseInt(rgb[0], 10) * 299 +
parseInt(rgb[1], 10) * 587 +
parseInt(rgb[2], 10) * 114) / 1000) <= 140
}
if (ww <= 140) {
document.getElementById("test").style.color = '#fff';
} else {
document.getElementById("test").style.color = '#000';
}
我尝试过另一种解决方案,但没有成功:http://jsfiddle.net/QkSva/
function isDark(color) {
var match = /rgb\((\d+).*?(\d+).*?(\d+)\)/.exec(color);
return (match[1] & 255) +
(match[2] & 255) +
(match[3] & 255) <
3 * 256 / 2;
}
$('div').each(function() {
console.log($(this).css("background-color"))
$(this).css("color", isDark($(this).css("background-color")) ? 'white' : 'black');
});
这个实例是我正在工作的网站https://nepmelbourne.com/q上的备用首页。我有一个动态背景,但是有些颜色与我的白色文本对比不好。
isDarkColor
? - brk