一种可能的解决方案是使用“选择器”类|id 创建一个画布元素来设置它的样式。
然后你可以在画布上建立一个像素的 RGBA.. 非常“hacky”,但这是我的小脑袋唯一能想到的!
类似这样的东西(未测试!):
假设您的 html 看起来像这样:
<style>
.background_element{
background:linear-gradient(to right, #fff 87%,rgba(238,237,233,0) 100%);
}
</style>
然后你要检查背景颜色..所以我们创建一个画布对象来克隆当时的 div。
var canvas = document.createElement('canvas');
//apply width and heigh 1px
canvas.css('background-color', $('.background_element').style.backgroundColor);
那么我们就不能得到这个画布上一个像素的颜色了..
var pixelData = this.canvas.getContext('2d').getImageData(1, 1, 1, 1).data;
console.log('R: ' + pixelData[0] + '<br>G: ' + pixelData[1] + '<br>B: ' + pixelData[2] + '<br>A: ' + pixelData[3]);
这会将 RGBA 记录到控制台.. 也许..
- 注意:我当然不推荐在生产环境中使用这个,只是一个
概念证明!
Inspiration
或者
您可以非常花哨,并使用HTMLelement.prototype.alpha 真正融入 RGBA! :)
类似:
HTMLElement.prototype.alpha = function(a) {
current_color = getComputedStyle(this).getPropertyValue("background-color");
match = /rgba?\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*\d+[\.\d+]*)*\)/g.exec(current_color)
a = a > 1 ? (a / 100) : a;
console.log("rgba(" + [match[1],match[2],match[3],a].join(',') +")");
}
再次非常混乱,但很有可能这会更精确!