为 Polymer 3.0 中的 DOM 元素动态分配样式

Dynamically assign styles to DOM Element in Polymer 3.0

我是第一次在 Polymer 3.0 中构建组件,我想知道如何将样式动态分配给 DOM 元素。我正在构建事件的水平时间轴,并且我想在设定范围内的每一年放置垂直标记。在 Vue.js,我会做这样的事情:

<year-marker v-for="(year, index) in years" :style="getPercentFromLeft(year)" :key="index"></year-marker>

在此设置中,我将拥有一个数据结构,其中包含我想要显示的所有年份,v-for 将循环遍历该数据结构并为每一年呈现一个标记。 getPercentFromLeft 函数将计算标记应位于屏幕左侧的百分比。 return 值的格式为 {left: 10%}year-marker 有额外的样式,但它们在样式部分指定。

Polymer 3.0 中执行此操作的等效方法是什么?如果没有,有什么更好的方法来做到这一点?

在 polymer3 中,您可以使用以下代码实现。遍历您的数据结构并计算每个项目的样式。

<dom-repeat items="{{years}}"> 
    <template> 
        <paper-item class$={{getPercentFromLeft(year)}}>{{item}}</paper-item> 
    </template> 
</dom-repeat>

getPercentFromLeft 将为每个项目(年)调用,您可以 return 所需的 class。