小程序 | 微信小程序实现星级评分与星级评分展示

本文档展示了如何在微信小程序中实现星级评分组件,包括点击事件处理和评分显示。通过WXML和JS代码,创建了一个可以交互的星级评分系统,并使用过滤器函数将评分值转换为固定小数位数。此外,还提供了星级评分的静态展示方法。
摘要由CSDN通过智能技术生成

 一、效果展示

星级评分
星级评分

星级评分展示
星级评分展示


 二、代码实现

星级评分部分:

<!-- wxml -->
<view class="starGrade">
    <text class="starGradeTxt">评价</text>
    <view class='scoreBox'>
        <view wx:for="{{starImgs}}" wx:key="id" bindtap='select' data-index="{{item.id}}">
            <image class="star" src="{{item.id > starId ? star_empty : star_full}}"></image>
        </view>
        <view class='scoreLevel'>{{starImgs[starId - 1].level}}</view>
    </view>
</view>
// js
Page({
    data:{
        starImgs: [
            {
                id: 1,
                level : '非常不推荐',
            }, 
            {
                id: 2,
                level : '不推荐',
            }, 
            {
                id: 3,
                level : '一般',
            }, 
            {
                id: 4,
                level : '推荐',
            }, 
            {
                id: 5,
                level : '非常推荐',
            }
        ],
        starId: 5,
        star_full: '/icons/score_full_big.png',//星星图标 满星
        star_empty: '/icons/score_empty_big.png',//星星图标 空星
    },
    
    /**
     * 星级评分点击事件
     */
    select(e) {
        this.data.starId = e.currentTarget.dataset.index;
        this.setData({
            starId : this.data.starId,
        })
    },
})

星级评分展示

<!-- wxml -->
<wxs module="filters" src="../../tools/filter.wxs"></wxs>
<!-- 星级评分展示 -->
<view class="container">
    <text class="score">{{filters.toFix(Info.grade)}}</text>
    <view 
        class="stars" 
        wx:for="{{[1, 2, 3, 4, 5]}}" 
        wx:key="{{index}}" 
        wx:for-item="i">
        <view class="star-full" wx:if="{{Info.grade >= index + 1}}">
            <image class="image-star" src="../../icons/score_full.png" />
        </view>
        <view class="star-empty" wx:else>
            <image class="image-star" src="../../icons/score_empty.png" />
        </view>
    </view>
</view>
// filter.wxs
var filters = {
    toFix: function (value) {       
        var valueNum = parseFloat(value);
        return valueNum.toFixed(1)
        // 保留一位小数
    }
}

module.exports = {
    toFix: filters.toFix,
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值