微信小程序开发 - 五星好评

本文分享了一种在小程序中实现动态五星好评组件的方法,通过点击不同的星星改变其状态,实现用户评价功能。代码简洁,思路清晰,适用于医美等小程序项目。

前言

由于最近公司前端组开发紧缺人手,公司医美项目比较赶,所以主动请求协助医美小程序开发,现学现用,不过觉得小程序还蛮简单的,在做到一个评价医生页面时,用到点击五星好评,觉得有点用,就分享上来了~

          效果图:                             文件材料:        

这个效果代码不多,更多的是一种思路,废话不多说,上代码~

.wxml

<view bindtap="starTap" data-index="{{index}}" wx:for="{{userStars}}" wx:key="index">
   <image src="{{item}}" class="stars_img"></image>
</view>

.wxss

.stars_img{height: 36rpx;width: 36rpx;padding-left: 20rpx;float: left}

.js

Page({
  //页面的初始数据
  data: {
    imgurl: app.globalData.imgurl,

    //引用外部imgage地址
    userStars: [
      app.globalData.imgurl +'/images/stars_1.png',
      app.globalData.imgurl +'/images/stars_1.png',
      app.globalData.imgurl +'/images/stars_1.png',
      app.globalData.imgurl +'/images/stars_1.png',
      app.globalData.imgurl +'/images/stars_1.png',
    ],
  },

  // 星星点击事件
  starTap: function (e) {
    var index = e.currentTarget.dataset.index; // 获取当前点击的是第几颗星星
    var tempUserStars = this.data.userStars;   // 暂存星星数组
    var len = tempUserStars.length;            // 获取星星数组的长度
    for (var i = 0; i < len; i++) {
      if (i <= index) {                        // 小于等于index的是满心
        tempUserStars[i] = app.globalData.imgurl +'/images/stars_2.png'
      } else { // 其他是空心
        tempUserStars[i] = app.globalData.imgurl +'/images/stars_1.png'
      }
    }
    // 重新赋值显示
    this.setData({
      userStars: tempUserStars
    })
  },

})

首先做一个包含5个星星的数组 , 默认是有1颗星星的,再就是处理点击事件,在处理点击事件前我们要先理清思路。比如我们点击第3颗星星时,需要显示的是3星满星,2颗空心。那么这个数组userStars就好处理了,数组的前3个元素是满心,后两个是空心。 

做个记录,兴许以后用的着~

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值