lau*_*kok 67 css jquery background-color
如何获取元素的背景颜色代码?
HTML
<div style="background-color:#f5b405"></div>
Run Code Online (Sandbox Code Playgroud)
jQuery的
$(this).css("background-color");
Run Code Online (Sandbox Code Playgroud)
结果
rgb(245, 180, 5)
Run Code Online (Sandbox Code Playgroud)
我想要的是
#f5b405
Run Code Online (Sandbox Code Playgroud)
Hus*_*ein 97
检查下面的示例链接,然后单击div以获取十六进制的颜色值.
var color = '';
$('div').click(function() {
var x = $(this).css('backgroundColor');
hexc(x);
alert(color);
})
function hexc(colorval) {
var parts = colorval.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
delete(parts[0]);
for (var i = 1; i <= 3; ++i) {
parts[i] = parseInt(parts[i]).toString(16);
if (parts[i].length == 1) parts[i] = '0' + parts[i];
}
color = '#' + parts.join('');
}
Run Code Online (Sandbox Code Playgroud)
查看http://jsfiddle.net/DCaQb/上的工作示例
Nat*_*yan 10
有一点这种黑客攻击的,因为HTML5画布需要解析的颜色值时,某些性能,如strokeStyle和fillStyle设置:
var ctx = document.createElement('canvas').getContext('2d');
ctx.strokeStyle = 'rgb(64, 128, 192)';
var hexColor = ctx.strokeStyle;
Run Code Online (Sandbox Code Playgroud)
function getBackgroundColor($dom) {
var bgColor = "";
while ($dom[0].tagName.toLowerCase() != "html") {
bgColor = $dom.css("background-color");
if (bgColor != "rgba(0, 0, 0, 0)" && bgColor != "transparent") {
break;
}
$dom = $dom.parent();
}
return bgColor;
}
Run Code Online (Sandbox Code Playgroud)
在Chrome和Firefox下正常运行
实际上,如果background-color在某些元素下未定义,Chrome会将其输出background-color为rgba(0, 0, 0, 0),而Firefox输出为transparent。
| 归档时间: |
|
| 查看次数: |
123871 次 |
| 最近记录: |