微信小程序开发(十一)五星好评
在之前的原生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})
},
总结
其实总体来做,五星好评并不难处理。理清思路,知道满心是什么,空心是什么,做一次,以后遇见其他平台上面的这种控件也就知道怎么处理了。
效果图
微信小程序开发(十一)五星好评相关推荐
- 微信小程序开发之五星好评
首选需要有两个星星 代码实现 html代码 css代码 .right .star { float: left; width: 54rpx; height: 54rpx; text-align: cen ...
- 微信小程序开发之五星评分
一位同学说要写五星评分.要有半颗星的评分. 于是我做了个玩具.有空了做模块化,这代码看不下去了. gif: 代码: 1.index.wxml <block wx:for="{{star ...
- 微信小程序笔记--显示五星好评(注意是显示不是点击评价!)
网上看了好多都是点击事件实现五星评价,想做一个只显示五星的微信小程序模板,结果网上都不全,所以还是自己写一个免得忘记,学艺不精,如果你有更好的方法请一定要留下评论或者私信给我,十分感谢! 1.先上一个 ...
- 01.微信小程序开发之环境搭建
在开发之前你要有微信开发者工具,下载地址:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html 这里我要假设大家有已经拿到了 ...
- 《微信小程序》微信小程序开发实例
wx-gesture-lock 微信小程序的手势密码 WXCustomSwitch 微信小程序自定义 Switch 组件模板 WeixinAppBdNovel 微信小程序demo:百度小说搜索 sh ...
- 微信小程序开发之路(十一)微信小程序第一个计算器项目搭建(centos8)
微信小程序开发之路(十一)计算器项目搭建(centos8) pip install django django-admin startproject weixintest cd weixintest ...
- 详解微信小程序开发(项目从零开始)
关注公众号 风色年代(itfantasycc) 280G前端&小程序资料随便拿! 详解微信小程序开发(项目从零开始) 一.序 微信小程序,估计大家都不陌生,现在应用场景特别多.今天就系统的介绍 ...
- 【微信小程序宝典】从零开始做微信小程序开发
开发前必读简要 基于大量无效开发,无法上线的案例,所以开发前部分知识十分重要:| 链接 微信小程序个人注册简单步骤 打开mp.weixin.qq.com,点击右上角立即注册,进入小程序注册| 链接 微 ...
- 微信小程序开发 从创建到使用
一.注册微信小程序 网址 下载微信小程序开发工具 https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html注册一个 ...
最新文章
- ASP.NET EntityFrameworkCore code first 多对多设计
- 【数据结构与算法】之深入解析“验证二叉搜索树”的求解思路与算法示例
- android解析XML总结(SAX、Pull、Dom三种方式)
- GNU/Linux与开源文化的那些人和事
- html之file标签 --- 图片上传前预览 -- FileReader
- 微信小程序入门一: 简 介、文本、事件、样式
- 经纬度距离,修改系统时间,读取ini文件
- 前端技术演进(六):前端项目与技术实践
- 面包板如何接线电源 图解_互感器、电能表接线和原理讲解
- linux ati显卡驱动下载,LINUX 下ati最新显卡驱动下载
- spring 4.0下集成webservice
- 最新席瓦莱恩服务器人口比例,魔兽世界怀旧服:2021年3月最新人口比例数据
- 我的2016(16行走,17前行)
- POI--各种样式的XSSFCellStyle的生成
- 基于PyQt5与opencv制作的证件照尺寸变换应用程序
- Extended Kalman Filter vs. Error State Kalman Filter for Aircraft Attitude Estimation 翻译
- USACO 2019 February Contest Platinum T3: Mowing Mischief
- 学习opencv:PS滤镜—马赛克
- 共享单车之数据可视化
- MacBook下使用VirtualBox虚拟Win7时设置分辨率为2560*1440