AFAIK, кросс-браузерный способ получить цвет определенной точки после рендеринга.
Таким образом, остается только смоделировать это. Получите цвет фона CSS плюс непрозрачность, а затем пройдите вверх через ваших родителей, пока не найдете другую фоновую запись.
Проблема: вы не можете получить значения RGB цвета, только строку CSS. Так что, если цвет фона "синий", вы потеряете. Но в большинстве случаев вы должны получить 7-символьную строку, такую как #ffee00
, которую можно преобразовать в 24-битное целое число (или 3 целых числа от 0 до 255). После этого вы можете просто применить прозрачность:
finalRed = parseInt (myRed * opacity + parentRed * ( 1. - opacity ));