2
我得到的body
的顏色和背景顏色的計算HEX像這樣走:挑選顏色更是從白色
function rgb2hex(rgb){
rgb = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
return (rgb && rgb.length === 4) ? "#" +
("0" + parseInt(rgb[1],10).toString(16)).slice(-2) +
("0" + parseInt(rgb[2],10).toString(16)).slice(-2) +
("0" + parseInt(rgb[3],10).toString(16)).slice(-2) : '';
}
var color = rgb2hex(window.getComputedStyle(document.getElementsByTagName("body")[0]).color);
var bg = rgb2hex(window.getComputedStyle(document.getElementsByTagName("body")[0]).backgroundColor);
我需要選擇其中一種顏色用作文本顏色在白色背景上。但是,頁面背景較暗並且顏色較淺/白色時會出現問題。因此,我需要智能地選擇其中的一個用作文本顏色。
我如何知道color
和bg
中的哪一個離#fff
最遠?
最遠在什麼意義?你想選擇最對比的顏色? – byxor
這完全正確。這兩種顏色中的哪一種在視覺上最適合作爲文本'color'使用,當'background:#fff;' –
將使用CSS顛倒屬性(https://davidwalsh.name/invert-colors-css)做什麼你要?它你想要一個JavaScript函數,這是一個搞清楚如何在JavaScript中進行反轉的問題。像這樣:http://stackoverflow.com/questions/6961725/algorithm-for-calculating-inverse-color – zelite