Javascript 如何获取十六进制元素的背景色代码?
如何获取元素的背景色代码Javascript 如何获取十六进制元素的背景色代码?,javascript,jquery,css,hex,background-color,Javascript,Jquery,Css,Hex,Background Color,如何获取元素的背景色代码 console.log($(“.div”).css(“背景色”) 您只需将颜色转换为所需格式即可 这里有一个脚本应该可以做到这一点:这方面有点麻烦,因为当设置了某些属性(如strokeStyle和fillStyle时,HTML5画布需要解析颜色值: var ctx = document.createElement('canvas').getContext('2d'); ctx.strokeStyle = 'rgb(64, 128, 192)'; var hexColo
console.log($(“.div”).css(“背景色”)代码>
您只需将颜色转换为所需格式即可
这里有一个脚本应该可以做到这一点:这方面有点麻烦,因为当设置了某些属性(如strokeStyle
和fillStyle
时,HTML5画布需要解析颜色值:
var ctx = document.createElement('canvas').getContext('2d');
ctx.strokeStyle = 'rgb(64, 128, 192)';
var hexColor = ctx.strokeStyle;
选中下面的示例链接并单击div以获取十六进制的颜色值
var color='';
$('div')。单击(函数(){
var x=$(this.css('backgroundColor');
hexc(x);
控制台。日志(颜色);
})
函数hexc(colorval){
var parts=colorval.match(/^rgb\(\d+)\s*(\d+)\s*(\d+)$/);
删除(第[0]部分);
对于(var i=1;i
在Chrome和Firefox下正常工作事实上,如果在某些元素下没有定义背景色
,Chrome会将其背景色
输出为rgba(0,0,0,0)
,而Firefox输出是透明的
我美丽的非标准解决方案
HTML
<div style="background-color:#f5b405"></div>
结果
#f5b405
添加@Newred解决方案。
如果您的风格不仅仅是背景色
,您可以使用:
$(this).attr('style').split(';').filter(item => item.startsWith('background-color'))[0].split(":")[1]
这个解决方案利用了@Newred和@Radu Diță所说的部分内容,但在不太标准的情况下会起作用
$(this).attr('style').split(';').filter(item => item.startsWith('background-color'))[0].split(":")[1].replace(/\s/g, '');
这两种方法都存在的问题是,它们都不检查背景色:和颜色之间的间距
所有这些都将与上述代码匹配
background-color: #ffffff
background-color: #fffff;
background-color:#fffff;
你想用这个值做什么?我想动画背景色-
$(这个)。动画({backgroundColor:''f5b405','fast');
但是我刚刚发现我也可以用rgb代码来动画背景色!lol有时$(这个)。css('backgroundColor')
返回rgba(n,n,n)
。对您的函数进行了一些调整,以自动化设计现代化等…示例使用场景-不完美,但可能对某些人有所帮助,因此我将其链接到此处以供参考此代码示例的摘要。可能只想将hexc函数重写为返回字符串的真实函数,而不是设置全局变量我相信这是新html5浏览器的最佳方法:)我喜欢这种方式
$(this).attr('style').split(';').filter(item => item.startsWith('background-color'))[0].split(":")[1].replace(/\s/g, '');
background-color: #ffffff
background-color: #fffff;
background-color:#fffff;