微信小程序----评价系统中的评星

WXRUI体验二维码

WXRUI体验码

如果文章对你有帮助的话,请打开微信扫一下二维码,点击一下广告,支持一下作者!谢谢!

场景

在电商、医疗等带有用户评价的时候,常见的就是对服务等进行星级评定,在小程序中如何更加简单的实现该功能?

效果图

WXML

<text class='rui-star' wx:for="{{[1,2,3,4,5]}}" wx:key="star1" bindtap='getStar' data-star='{{item}}' style='background:url({{diagnosisStar >= item ? iconPath.iconStar0 : iconPath.iconStar1}}) no-repeat center center/6.7vw 6.7vw;'></text>

JS

Page({
    data: {diagnosisStar: 1},
    // 获取点击的星位
    getStar(e){
        let star = e.currentTarget.dataset.star;
        this.setData({ diagnosisStar: star});
    }
})

原理

  1. 将需要的图标(灰色星星和黄色星星)转行为 base64 储存在本地文件中(图片在线转换base64工具),例如:本demo中的 iconStar0 和 iconStar1 就存储在 iconPath.js 文件,需要用时取出。
  2. 循环评星级数,由于大多数都是五颗星,因此此处采用数组[1,2,3,4,5]。
  3. 在js 的data中初始化设置默认值 diagnosisStar ,一般设置为 0 ,由于需要,此处设置为 1 。
  4. 给每一个星绑定点击事件 getStar ,点击事件是为了获取当前点击的位置,因此需要在标签设置 data-star=’{{item}}’,传点击位。
  5. 在 getStar 事件获取点击位,然后将点击位的值赋值(setData方法)默认值 diagnosisStar ,实现需要的星级效果。

注意

  1. 由于我没有将 WXSS 和 iconPath.js 文件粘贴出来,所以直接复制代码,会看不到改效果。
  2. 如果想采用 form 表单提交 diagnosisStar 的值,可以采用在星级的位置影藏一个 input 标签,来实现值的提交。
  3. 此方法仅供参考,如果有更加快捷的方法,欢迎交流。

WXRUI体验二维码

WXRUI体验码

如果文章对你有帮助的话,请打开微信扫一下二维码,点击一下广告,支持一下作者!谢谢!

下载

我的博客,欢迎交流!

我的CSDN博客,欢迎交流!

微信小程序专栏

前端笔记专栏

微信小程序实现部分高德地图功能的DEMO下载

微信小程序实现MUI的部分效果的DEMO下载

微信小程序实现MUI的GIT项目地址

微信小程序实例列表

前端笔记列表

游戏列表

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rattenking

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值