仿饿了么(星星组件)

最终效果图
在这里插入图片描述

使用的方法是先使用五个星星svg图案,之后计算出亮的星星的宽度覆盖在原来星星的上面

<template>
    <div class="rating_container">
        <!-- 一共五颗星 -->
        <section class="star_container">
            <svg class="grey_fill" v-for="num in 5" :key="num">
                <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#star"></use>
            </svg>
        </section>
        <!-- 计算评分计算亮星星的宽度 -->
        <div :style="'width:'+ rating*2/5 + 'rem'" class="star_overflow" >
            <section class="star_container">
                <svg class="orange_fill" v-for="num in 5" :key="num">
                    <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#star"></use>
                </svg>
            </section>
        </div>
    </div>
</template>

黄色星星的宽度 = 评分*总宽度/星星颗数 = rating*2/5 //这里星星总宽度是2rem

样式如下

.rating_container{
    position: relative;
    top: .2rem;
    @include wh(2rem, .4rem);
    .star_overflow{
        overflow: hidden;
        position: absolute;
        height: 100%;
    }
    .star_container{
        position: absolute;
        display: flex;
        width: 2rem;
        height: 0.4rem;
        top: -0.02rem;
        left: -0.02rem;
        .grey_fill{
            fill: #d1d1d1;
        }
        .orange_fill{
            fill: #ff9a0d;
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值