gpt4 book ai didi

polymer - 以编程方式更改样式

转载 作者:行者123 更新时间:2023-12-05 00:59:22 25 4
gpt4 key购买 nike

我正在尝试关注 Custom property API for Polymer elements有关以编程方式更新元素的 CSS 属性(和样式)的文档,但似乎无法使其正常工作。这是我目前的尝试:

<link rel="import" href="https://rawgit.com/Polymer/polymer/master/polymer.html">

<dom-module id="my-namecard">
<style>
:host {
--color: green;
}

span {
color: var(--color, orange);
}
</style>

<template>
<div>
Hi! My name is <span>{{name}}</span>
</div>
<button on-click="redClick">Set text to Red</button>
<button on-click="blueClick">Set text to Blue</button>
</template>

<script>
Polymer({
is: 'my-namecard',
properties: {
name: {
type: String
}
},
redClick: function() {
console.log('Setting "--color" red');
this.customStyle['--color'] = 'red';
this.updateStyles();
},
blueClick: function() {
console.log('Setting "--color" blue');
this.customStyle['--color'] = 'blue';
this.updateStyles();
}
});
</script>
</dom-module>

<my-namecard name="Sean"></my-namecard>

我还尝试不设置 CSS 属性并使用直接样式,例如:
redClick: function() {
console.log('Setting "color" red');
this.customStyle['color'] = 'red';
this.updateStyles();
}

我创建了一个 codepen证明问题

最佳答案

您在当前版本的 Polymer 中遇到了一个错误,其中像这样的样式更改将传播到子 Polymer 元素,但不会传播到元素本身。看:

https://github.com/Polymer/polymer/issues/1851

解决方法是调用 Polymer.updateStyles()而不是 this.updateStyles() .

这是更新的 codepen .

关于polymer - 以编程方式更改样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30854101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com