在之前的原生iOS开发中写了一个《【iOS】星星评分控件HGDQStars》,这个在原生开发里面可以给出0~5之间的任意一个分数,使用起来也很方便。
最近在做小程序开发,也需要一个五星好评的控件,这次写的只能给1,2,3,4,5这几个固定的分数,但是对于这种对分数要求不是很严格的场景,其实这样就可以了。
下面是具体实现过程。

准备工作

首选需要有两个星星,一个满分星星,一个空心的星星。

代码实现

.wxml文件

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

这是先一个for循环构建出5个星星。

.wxss文件

.right .star {float: left;width: 54rpx;height: 54rpx;text-align: center;line-height: 54rpx;padding: 48rpx 2rpx;
}
.star image{width: 48rpx;height: 48rpx;
}

这里大家可能会注意到显示星星的<image>控件比他外面的<view class="star">要小。其实这里是为了加强用户体验。很多时候我们看见的控件显示很小,但是它的实际点击区域却比较大。这里我就是这里处理,这样既保证了UI的显示效果,也保证了一定的用户体验。这里的点击事件是绑定在<view class="star">上面的。

.js文件

首先做一个包含5个星星的数组

userStars: ['../../images/icon-start-full.png','../../images/icon-start-emty.png','../../images/icon-start-emty.png','../../images/icon-start-emty.png','../../images/icon-start-emty.png'
],

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

// 星星点击事件
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] = '../../images/icon-start-full.png'}else{ // 其他是空心tempUserStars[i] = '../../images/icon-start-emty.png'}}// 重新赋值就可以显示了this.setData({userStars: tempUserStars})
},

总结

其实总体来做,五星好评并不难处理。理清思路,知道满心是什么,空心是什么,做一次,以后遇见其他平台上面的这种控件也就知道怎么处理了。

效果图

微信小程序开发(十一)五星好评相关推荐

  1. 微信小程序开发之五星好评

    首选需要有两个星星 代码实现 html代码 css代码 .right .star { float: left; width: 54rpx; height: 54rpx; text-align: cen ...

  2. 微信小程序开发之五星评分

    一位同学说要写五星评分.要有半颗星的评分. 于是我做了个玩具.有空了做模块化,这代码看不下去了. gif: 代码: 1.index.wxml <block wx:for="{{star ...

  3. 微信小程序笔记--显示五星好评(注意是显示不是点击评价!)

    网上看了好多都是点击事件实现五星评价,想做一个只显示五星的微信小程序模板,结果网上都不全,所以还是自己写一个免得忘记,学艺不精,如果你有更好的方法请一定要留下评论或者私信给我,十分感谢! 1.先上一个 ...

  4. 01.微信小程序开发之环境搭建

    在开发之前你要有微信开发者工具,下载地址:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html 这里我要假设大家有已经拿到了 ...

  5. 《微信小程序》微信小程序开发实例

    wx-gesture-lock  微信小程序的手势密码 WXCustomSwitch 微信小程序自定义 Switch 组件模板 WeixinAppBdNovel 微信小程序demo:百度小说搜索 sh ...

  6. 微信小程序开发之路(十一)微信小程序第一个计算器项目搭建(centos8)

    微信小程序开发之路(十一)计算器项目搭建(centos8) pip install django django-admin startproject weixintest cd weixintest ...

  7. 详解微信小程序开发(项目从零开始)

    关注公众号 风色年代(itfantasycc) 280G前端&小程序资料随便拿! 详解微信小程序开发(项目从零开始) 一.序 微信小程序,估计大家都不陌生,现在应用场景特别多.今天就系统的介绍 ...

  8. 【微信小程序宝典】从零开始做微信小程序开发

    开发前必读简要 基于大量无效开发,无法上线的案例,所以开发前部分知识十分重要:| 链接 微信小程序个人注册简单步骤 打开mp.weixin.qq.com,点击右上角立即注册,进入小程序注册| 链接 微 ...

  9. 微信小程序开发 从创建到使用

    一.注册微信小程序 网址 下载微信小程序开发工具 https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html注册一个 ...

最新文章

  1. ASP.NET EntityFrameworkCore code first 多对多设计
  2. 【数据结构与算法】之深入解析“验证二叉搜索树”的求解思路与算法示例
  3. android解析XML总结(SAX、Pull、Dom三种方式)
  4. GNU/Linux与开源文化的那些人和事
  5. html之file标签 --- 图片上传前预览 -- FileReader
  6. 微信小程序入门一: 简 介、文本、事件、样式
  7. 经纬度距离,修改系统时间,读取ini文件
  8. 前端技术演进(六):前端项目与技术实践
  9. 面包板如何接线电源 图解_互感器、电能表接线和原理讲解
  10. linux ati显卡驱动下载,LINUX 下ati最新显卡驱动下载
  11. spring 4.0下集成webservice
  12. 最新席瓦莱恩服务器人口比例,魔兽世界怀旧服:2021年3月最新人口比例数据
  13. 我的2016(16行走,17前行)
  14. POI--各种样式的XSSFCellStyle的生成
  15. 基于PyQt5与opencv制作的证件照尺寸变换应用程序
  16. Extended Kalman Filter vs. Error State Kalman Filter for Aircraft Attitude Estimation 翻译
  17. USACO 2019 February Contest Platinum T3: Mowing Mischief
  18. 学习opencv:PS滤镜—马赛克
  19. 共享单车之数据可视化
  20. MacBook下使用VirtualBox虚拟Win7时设置分辨率为2560*1440

热门文章

  1. 夸人长得丑的20种方法(经典)
  2. 工厂机制(注册,创建,覆盖)
  3. html写轮眼动画效果,写轮眼动态效果图 如何自己制作写轮眼变轮回眼动态图?...
  4. 沙坡村男子职业学院(xjtu)索取电子版图书光盘
  5. 【计算机网络】第六部分 应用层(29) 多媒体
  6. python爬取百度图片——翻页式网站爬取
  7. ChatGPT:探索RLHF与GPT的完美结合
  8. web前端-CSS 导航栏 -024
  9. ASA5510 Password recovery
  10. 信息安全基础综合实验-中国剩余定理