Im folgenden Beispiel habe ich ein übergeordnetes benutzerdefiniertes Element, das ein untergeordnetes benutzerdefiniertes Element aufruft. Das untergeordnete Element hat eine Variable color
CSS-Eigenschaft für Elemente, die in dem übergeordneten CSS definiert werden können.Polymer 1.x: Wie kann man (mithilfe von JS) den Wert einer benutzerdefinierten CSS-Eigenschaft erhalten?
Im JS des untergeordneten Elements möchte ich den Wert --custom-color
lesen, der am übergeordneten Element ausgewählt wurde. In diesem Fall lautet der Wert yellow
. Anders ausgedrückt: Wenn die Methode getCustomColor()
ausgeführt wird, möchte ich, dass das Konsolenprotokoll "Ihre benutzerdefinierte Farbe ist gelb" anzeigt.
Welches JavaScript setze ich in die getCustomColor()
Methode ein, um zu definieren?
<style>
my-child-element {
--custom-color: yellow;
}
</style>
<template>
<my-child-element></my-child-element>
</template>
my-Kind-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>
FYI: This documentation describes the custom style API. Aber ich kann nicht den Bezug zu dem finden, was ich in dieser Frage beschreibe.
Haben Sie eine Einschränkung, um diese benutzerdefinierte Requisite innerhalb der CSS hinzuzufügen ?, was ist mit einem 'data-' Attribut und lesen Sie es mit '.data (" custom-color ")'. Wenn das keine Option ist, könntest du die '.css()' Stütze aus dem Element lesen und nach deiner '--custom-color' Stütze suchen .... Ich würde definitiv den' data' Ansatz verwenden, wenn du Kontrolle hast wie die Kuppel gerendert wird. Übrigens, der Vorschlag basiert nur auf 'jquery' und' html' Funktionen/Elementen. Ich habe nicht mit Polymer vor –
gearbeitet Die Dokumente, die Sie verbunden haben, erwähnen es tatsächlich ... Sie müssen nur 'this.customStyle ['- mein-property-name']' überprüfen und es wird den Wert der Eigenschaft haben – Alan
Ich werde es als eine Antwort setzen, so dass es für Leute, die danach suchen, einfacher ist, es zu finden – Alan