我正在尝试在vue应用程序中创建“stars review”组件。评级值“overallrating”是所有评级的平均值,可以是0.0到5.0之间的任何值。在我写的组件里面
<span v-for="(star, index) in maxStars" :key="index">
<span
v-if="(index + 1) === Math.ceil(overallRating) && overallRating % 1 !== 0"
:style="{ width: (overallRating % 1).toFixed(2).substring(2) + '%' }"
class="icon-grey-star full-rating-star">
</span>
<span
v-else-if="(index + 1) <= Math.floor(overallRating)"
class="icon-grey-star full-rating-star">
</span>
<span v-else class="icon-grey-star"></span>
</span>
这个 maxStars
设置为5和 overallRating
可以是0.0到5.0之间的任何十进制值。我想要达到的是如果 overallRating
,说 3.7
,设置3颗星,颜色来自课堂 full-rating-star
. 设定 4th
满天星 70%
通过设置 width
财产。并使用 icon-grey-star
班级。
使用的css
.span.icon-grey-star{
color: #ccc;
&:before{
margin-right: 0px;
margin-left: 0px;
width: auto;
}
}
.icon-grey-star:before{
content: '\e818'
}
.full-rating-star{
color: red;
}
这一问题正在决定未来 width
因为百分比不起作用。我做错了什么。
1条答案
按热度按时间epfja78i1#
这是展示如何为所有的明星做这件事。但是你可以很容易地为一颗星星使用背景和剪辑。