Ответ 1
Одним из возможных решений было бы создание элемента canvas с использованием класса 'selector' class id для его стилизации.
Тогда вы можете установить RGBA пикселя на этом холсте. ОЧЕНЬ "взломанный", но это единственное, о чем может думать мой маленький мозг!
Что-то вроде этого (Не тестировалось!):
Допустим, ваш html выглядит примерно так:
<style>
.background_element{
background:linear-gradient(to right, #fff 87%,rgba(238,237,233,0) 100%);
}
</style>
Затем вы хотите проверить цвет фона.. поэтому мы создаем объект canvas для клонирования 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 на консоль.. Может быть..
- Примечание: я не рекомендую это для создания env, конечно, доказательство концепции!
В качестве альтернативы
Вы можете быть очень причудливыми и действительно вливаться в RGBA с помощью HTMLelement.prototype.alpha
!:)
Что-то вроде:
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(',') +")");
}
Снова очень грязно, но есть хорошие шансы, это будет более важно!