2016-06-29 9 views
0

divを背景色で塗りつぶしています。 Javascriptを使用して、私は色相、彩度、および明度のフィルタをdivの周りに3つのラッパーを使用してそれぞれdinamically変更します。私は複数のテキスト要素にその色を適用するために、フィルタ後baseColor div要素の結果の背景色を取得できますかCSSフィルタの後ろに背景色を取得する

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

私が思いついた唯一の解決策は、divと同じ方法でテキスト要素を折り返すことですが、ページにあまりにも多くのフィルタを持つことは過度だと思います。 。

+0

理由は? – Fr0z3n

+0

['Window.getComputedStyle()'](https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle)はどうですか?また、あなたのCSSを投稿してください。 – zero298

答えて

0

divから計算された色を得ることはできません。しかし、javascriptを使ってベースカラーのフィルター効果を計算することができます。それは、このような、私はそうは思わないlightensaturatespin

+0

これはうまくいきましたが、色は少し異なります。 (私は単一の色ではなく、グラデーションを使用していました)フィルタを完全に削除し、このライブラリを使用して色を計算しました。 – Fr0z3n

0

などのメソッドを持っていhttps://github.com/bgrins/TinyColor

- このライブラリをチェックしてください。 window.getComputedStyle()が役に立ったと思った。しかし、私は解決された背景色を考慮に入れるとは思わない。

以下のコードは、依然として出力:downvoteする

RGB(0、0、255)

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

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