微信小程序-五星评分功能
目录
微信小程序-五星评分功能
最近要做一个在微信小程序五星评分的功能
代码如下:
js
Page({
/**
* 页面的初始数据
*/
data: {
starFlag:5
},
changeOne:function() {
var that = this;
that.setData({
starFlag: 1
});
},
changeTwo:function() {
var that = this;
that.setData({
starFlag: 2
});
},
changeThree:function() {
var that = this;
that.setData({
starFlag: 3
});
},
changeFour:function() {
var that = this;
that.setData({
starFlag: 4
});
},
changeFive:function() {
var that = this;
that.setData({
starFlag: 5
});
}
})
在data下增加一个字段starFlag,根据starFlag的值来确定显示分数;
默认starFlag为5,相当于默认五星好评;
WXML
<!--走心评价-->
<view class="star" style="display:flex;flex-direction:row;">
<view class="star-description">走心指数</view>
<view class="star-content" style="display:flex;flex-direction:row;">
<view class="starsHas {{starFlag>=1? '': 'starNo'}}" bindtap="changeOne"></view>
<view class="starsHas {{starFlag>=2? '': 'starNo'}}" bindtap="changeTwo"></view>
<view class="starsHas {{starFlag>=3? '': 'starNo'}}" bindtap="changeThree"></view>
<view class="starsHas {{starFlag>=4? '': 'starNo'}}" bindtap="changeFour"></view>
<view class="starsHas {{starFlag>=5? '': 'starNo'}}" bindtap="changeFive"></view>
</view>
</view>
在每个评分按钮上增加点击事件,修改对应的starFlag值。在每个按钮上class进行判断,判断星星的点亮状态。
WXSS
.star{
margin-top: 30rpx;
}
.star-description{
font-size: 28rpx;
color: #333333;
margin-left: 30rpx;
}
.star-content {
position: absolute;
right: 0px;
margin-right: 40rpx;
}
.star .star-content .starNo{
z-index: 2;
background-image: url("https://static.imsummer.cn/anonymous_user/alice-hat.png");
width: 83rpx;
height: 43rpx;
background-size: 43rpx 43rpx;
background-position: center center;
background-repeat: no-repeat;
}
.starsHas{
z-index: 1;
width: 83rpx;
height: 43rpx;
background-image: url("https://static.imsummer.cn/anonymous_user/alice-lizard.png");
background-size: 43rpx 43rpx;
background-position: center center;
background-repeat: no-repeat;
}
这个是样式
注意background-image不要是本地的图片,我这里用的是测试的线上的图片,自行更换即可;
background-image:可以使用网络图片,或者 base64,或者使用image标签