如何以十六进制获取元素的背景颜色代码?

IT技术 javascript jquery css hex background-color
2021-02-09 23:50:52

如何获取元素的背景颜色代码?

console.log($(".div").css("background-color"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="div" style="background-color: #f5b405"></div>

我想要的是

#f5b405
6个回答

检查下面的示例链接,然后单击 div 以获取十六进制的颜色值。

var color = '';
$('div').click(function() {
  var x = $(this).css('backgroundColor');
  hexc(x);
  console.log(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('');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='div' style='background-color: #f5b405'>Click me!</div>

http://jsfiddle.net/DCaQb/检查工作示例

玩了一些你的功能来自动化设计现代化等等......示例使用场景jsfiddle.net/DCaQb/625 - 不完美但也许它对某人有帮助,所以我将它链接到这里以供参考
2021-03-21 23:50:52
有时$(this).css('backgroundColor')返回rgba(n, n, n, n)
2021-03-29 23:50:52
感谢您提供此代码示例。可能只想将该 hexc 函数重写为返回字符串的真实函数,而不是设置全局变量。
2021-04-05 23:50:52

对此有一点小技巧,因为在设置了某些属性(如strokeStyle和 )时需要 HTML5 画布来解析颜色值fillStyle

var ctx = document.createElement('canvas').getContext('2d');
ctx.strokeStyle = 'rgb(64, 128, 192)';
var hexColor = ctx.strokeStyle;
我相信这是新 html5 浏览器的最佳方法:)
2021-03-16 23:50:52
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;
  }

在 Chrome 和 Firefox 下正常工作

您拥有将其转换为所需格式所需的颜色。

这是一个应该可以解决问题的脚本:http : //www.phpied.com/rgb-color-parser-in-javascript/

实际上,如果background-color某个元素下没有定义,Chrome 会输出它的background-coloras rgba(0, 0, 0, 0),而 Firefox 输出的是transparent.