Changing CSS variables via JS in Polymer

后端 未结 3 1064
猫巷女王i
猫巷女王i 2020-12-16 02:13

In my Polymer project, I have a toolbar with a color I want to change using JavaScript. Since Polymer uses the CSS variable — paper-toolbar-background internally for styling

相关标签:
3条回答
  • 2020-12-16 02:26

    To set the CSS variable for the current Polymer.Element:

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

    To set the variable globally use:

    Polymer.updateStyles({'--paper-toolbar-background': '#ed0'});
    
    0 讨论(0)
  • 2020-12-16 02:36

    Set the variable value in the element's customStyle map then call the updateStyle method.

    Here is an example of an element that changes its own visibility by modifying the value of a custom style that it defines. The variable can be external as well.

    <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 讨论(0)
  • 2020-12-16 02:43

    Basically,

    1. Grab the element
    2. Use the customStyle property to alter --paper-toolbar-background
    3. Run element.updateStyles()

    Please see the docs. [Edit] If you need an example, I've one here.

    0 讨论(0)
提交回复
热议问题