2016-07-11 10 views
1

次の例では、子カスタム要素を呼び出す親カスタム要素があります。子は親CSSで定義できるp要素の変数color CSSプロパティを持っています。子要素のJSでポリマー1.x:どのように(JSを使用して)カスタムCSSプロパティの値を取得するにはどうすればいいですか?

、私は親で選択--custom-color値を読むことをお勧めします。この場合、値はyellowです。別の言い方をすると、getCustomColor()メソッドを実行すると、コンソールログに「あなたのカスタム色は黄色です。」と表示されます。私はを定義するためにgetCustomColor()方法にはどのようなJavaScriptを

置けばいいの?

私の親-element.html FYI
<style> 
    my-child-element { 
    --custom-color: yellow; 
    } 
</style> 
<template> 
    <my-child-element></my-child-element> 
</template> 
私の子-element.html
<style> 
    p { 
    color: var(--custom-color); 
    } 
</style> 
<script> 
    getCustomColor: function() { 
    var yourColor = // What goes here to obtain the correct value of 'yellow'? 
    console.log('Your custom color is' + yourColor); 
    } 
</script> 

This documentation describes the custom style API。しかし、私はこの質問で私が記述していることへの言及を見つけることができないようです。あなたが実際にリンクされ

+0

あなたはどのような ''データ属性を使用することについて?CSS内そのカスタム小道具を追加し、 '.dataセクション(「カスタムカラー」)'でそれを読むための制約を持っていますか。それがオプションでない場合は、要素から '.css()' propを読み込み、 '--custom-color' propを検索することができます。もしあなたがコントロールを持っているなら、私は間違いなく' data'アプローチを使用しますドームのレンダリング方法。 BTWでは、この提案は 'jquery'と' html'関数/要素のみに基づいています。私はポリマーで作業していません –

+0

あなたが実際にリンクしている文書は実際にそれを言及しています... 'this.customStyle [' - my-property-name']'をチェックするだけで、 – Alan

+0

私は答えとして、これを探している人が見つけやすいようにします – Alan

答えて

4

ドキュメントは、あなただけのthis.customStyle['--my-property-name']をチェックする必要があり、それが@BryanDowningによってプロパティの値コメントパー

+3

'window.getComputedStyle($ 0).getPropertyValue( ' - custom-color')'ここで '$ 0'はa DOM要素への参照。経由:http://stackoverflow.com/a/36609605/230167 –

+0

Ninja'dは2回です。今日は私の日ではありません。あなたの両方、upvotesを持っています。 – abluejelly

+0

'var yourColor = this.customStyle [' - custom-color']'を実行すると、 'undefined'が返されます。何か案は? – Mowzer

0

を持っています...

をそれを言及:

var s = document.querySelector('p'); 
var yourColor = window.getComputedStyle(s).getPropertyValue('color'); 
// Using Polymer syntax, the above line could be written as follows: 
var yourColor = s.getComputedStyleValue('color'); 

そのような作品。最初のp要素のcolorプロパティの現在の値を返します。

+0

また、同様のものの実例については[このjsBinを参照](http://jsbin.com/bavezaciwi/edit?html,output)を参照してください。 ... jsbin.com/bavezaciwi/edit?html,output – Mowzer