CSS过滤后获取背景颜色

时间:2016-06-29 19:20:01

标签: javascript html css css-filters

我有一个div,背景色。 使用Javascript我可以在div周围使用3个包装器来改变色调,饱和度和亮度过滤器,每个包装器都带有一个过滤器。

   <div class="filterHue">
      <div class="filterSaturation">
         <div class="filterLightness">
            <div class="baseColor"></div>
         </div>
      </div>
   </div>

如何在滤镜后获得baseColor div的结果背景颜色,以便将该颜色应用于多个文本元素?

我提出的唯一解决方案是以与div相同的方式包装文本元素,但我认为在页面上有太多过滤器是一种过度杀伤,如果有可能,我更喜欢另一种解决方案。

2 个答案:

答案 0 :(得分:0)

我认为你不能从div获得计算出的颜色。但是你可以使用javascript来计算滤镜对基色的影响。看看这个图书馆 - https://github.com/bgrins/TinyColor

它包含lightensaturatespin

等方法

答案 1 :(得分:0)

我不这么认为。我认为window.getComputedStyle()可能有所帮助。但我不认为它需要考虑已解决的背景颜色。

以下代码仍然输出:

  

rgb(0,0,255)

&#13;
&#13;
var e = document.querySelectorAll("div.test")[0];

alert(window.getComputedStyle(e, null)["background-color"]);
&#13;
.test {
  display: inline-block;
  width: 50px;
  height: 50px;
  background-color: blue;
  filter: grayscale(100%);
}
&#13;
<div class="test"></div>
&#13;
&#13;
&#13;