2015-08-13 14 views
10

Nel mio progetto Polimero, ho una barra degli strumenti con un colore che voglio modificare utilizzando JavaScript. Poiché Polymer utilizza la variabile CSS - paper-toolbar-background internamente per lo styling, non posso fare qualcosa come style.color. Ho trovato un metodo chiamato setProperty(), ma non funziona per me. Qualcuno ha già trovato una soluzione?Modifica delle variabili CSS tramite JS in Polymer

+0

Sta dicendo che si sta utilizzando 'carta toolbar' e stai provando ad impostare la proprietà CSS 'background-color' tramite JavaScript? –

risposta

4

In sostanza,

  1. Afferra l'elemento
  2. Utilizzare la proprietà di alterare CustomStyle --paper-barra-sfondo
  3. Run element.updateStyles()

prega di consultare i docs . [Modifica] Se ti serve un esempio, ne ho uno here.

14

Impostare il valore della variabile nella mappa di customStyle dell'elemento, quindi chiamare il metodo updateStyle.

Ecco un esempio di un elemento che modifica la propria visibilità modificando il valore di uno stile personalizzato che definisce. Anche la variabile può essere esterna.

<dom-module id="my-elem"> 

    <style> 
    :host { 
     display: block; 
     --my-elem-visibility: hidden; 
    } 
    #child { 
     visibility: var(--my-elem-visibility) 
    } 
    </style> 
    <template> 
    <div id="child">Some content goes here.</div> 
    </template> 
</dom-module> 

<script> 
    Polymer({ 

     is: 'my-elem', 

     setVisible: function (visible) { 
      this.customStyle['--my-elem-visibility'] = 'visible'; 
      this.updateStyles(); 
     } 
    }); 
</script> 
+0

Controlla qui per un'altra risposta che utilizza un attributo dati associato per controllare uno stile personalizzato: http://stackoverflow.com/questions/36739078/polymer-how-to-handle-a-style-dynamically/36743927#36743927 – jptknta

+2

Per il futuro riferimento, questo è ora modificato in Polimero 2 su una singola riga 'this.updateStyles ({'- my-elem-visibility': 'visible'});' –

1

Per impostare la variabile di CSS per la corrente Polymer.Element:

this.updateStyles({'--paper-toolbar-background': '#ed0'}); 

per impostare la variabile a livello globale usare:

Polymer.updateStyles({'--paper-toolbar-background': '#ed0'}); 
Problemi correlati