微信小程序实现星级评分

本文实例为大家分享了微信小程序实现星级评分的具体代码,供大家参考,具体内容如下

第一种方法:

WXML代码:

<view>
    星级评分
</view>

<view>

    <block class="brightStars">
        <image data-index='0' data-no="{{item}}" wx:for="{{starsBox}}"  bindtap="changePic" wx:key="index" src="{{flag[0]>=item? '../img/starFull.png' : '../img/star.png'}}"></image>
    </block>
    <view class="texts">{{startext[0]}}</view>
</view>

JS代码:

Page({
    data: {
        flag: [0, 0, 0],
        startext: ['', '', '', ],
        starsBox: [1, 2, 3, 4, 5]
    },

    changePic: function (e) {
        var index = e.currentTarget.dataset.index;
        console.log(index,'-');
        var num = e.currentTarget.dataset.no;
        console.log(num);
        var a = 'flag[' + index + ']';
        console.log(a);
        var b = 'startext[' + index + ']';
        console.log(b);
        var that = this;
        if (num == 1) {
            that.setData({
                [a]: 1,
                [b]: '非常不满意'
            });
        } else if (num == 2) {
            that.setData({
                [a]: 2,
                [b]: '不满意'
            });
        } else if (num == 3) {
            that.setData({
                [a]: 3,
                [b]: '一般'
            });
        } else if (num == 4) {
            that.setData({
                [a]: 4,
                [b]: '满意'
            });
        } else if (num == 5) {
            that.setData({
                [a]: 5,
                [b]: '非常满意'
            });
        }
    },

})

WXSS代码:

.container{
    display: flex;
    flex-direction: row;
    padding: 0;
    flex-wrap: nowrap;

}

image{
    width: 50px;
    height: 50px;
}

第二种方法:

WXML内容:

<view>星级评分</view>

<block wx:for="{{starYesNum}}" wx:key="index">
  <image bindtap="selectStar" id='{{index+1}}' data-in='selectStarYes' src='../../static/img/starY.png'></image>
</block>
<block wx:for="{{starNoNum}}"  wx:key="index">
  <image bindtap='selectStar' id='{{index+1}}' data-in='selectStarNo' src='../../static/img/starN.png'></image>
</block>
<view>{{starYesNum}}星</view> 

第一个block标签内是亮星星的盒子
第二个block标签内是不亮星星的盒子

通过改变亮星星的数量和不亮星星的数量实现星级

JS代码:

Page({
  data: {
    starYesNum:0,       //点亮的星星数量
    starNoNum:5,        //不点亮的星星数量
  },

  selectStar:function(e){
    console.log(e.target.id);
    console.log(e.currentTarget.dataset.in);

    //判断点击的星星是亮的星星还是不亮的星星,并进行设置
    if(e.currentTarget.dataset.in == 'selectStarNo'){
      this.setData({
        starYesNum: Number(e.target.id) + Number(this.data.starYesNum),
        starNoNum:5-Number(e.target.id) - Number(this.data.starYesNum)
      })
    }else{
      this.setData({
        starYesNum:Number(e.target.id ),
        starNoNum:Number(5-e.target.id)
      })
    }
  },
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2021-11-13

微信小程序实现星级评分和展示

本文实例为大家分享了微信小程序实现星级评分和展示的具体代码,供大家参考,具体内容如下 星级评分分成两种情况: 一:展示后台给的评分数据   二:用户点击第几颗星星就显示为几星评分; 直接上代码 wxml部分 <view> <view>一:显示后台给的评分</view> <block wx:for="{{one_1}}" wx:key="item"> <image src='../../image/star.png

微信小程序实现星级评价效果

本文实例为大家分享了微信小程序实现星级评价效果的具体代码,供大家参考,具体内容如下 效果预览: wxml代码部分: <view class='topMaxBox'> <view class='topLeft' style='width: {{ imgW }}px; height: {{ imgW }}px; flex: {{ imgW }}px 0 0;'> <image src='http://img02.tooopen.com/images/20150928/tooope

微信小程序实现笑脸评分功能

本文实例为大家分享了微信小程序实现笑脸评分的具体代码,供大家参考,具体内容如下 image方式实现的笑脸评分功能 由于我这里的图片使用的不是背景图,所以实现方法跟使用背景图的方式不同 你也可以使用wx:for来操作   由于微信小程序需要base64格式或者网图才能设置背景图  所以就没用背景图 首先这里放的是差中好评的三张图,首先进入页面进行评分时需要默认是好评  1.png表示的是未选中图片  2.png代表的是选中的图片   图片点击绑定了同一个函数 <view class='evalua

微信小程序技巧之show内容展示,上传文件编码问题

show内容展示 尝试用微信小程序的template组件实现.同时,尝试页面间转跳时传参,在目标页面引入模板文件实现 写的更少,做的更多 篇幅有限详细代码此处省略 <view class="show-warp"> <block wx:for="{{discuss}}" wx:key="index"> <template is="discuss" data="{{item}}"&

微信小程序实现星级评价

本文实例为大家分享了微信小程序星级评价的具体代码,供大家参考,具体内容如下 效果图 wxml <view class='assess-star'> <view class='star-wrap'> <view class='star-item' wx:for="{{stars}}" wx:key="" style='background:url("{{item.flag==1?item.lightImg:item.blackI

微信小程序自定义轮播图

本文实例为大家分享了微信小程序自定义轮播图展示的具体代码,供大家参考,具体内容如下 默认的swiper面板指示点都是小圆点黑灰的,但这满足不了广大小伙伴需求,比如其他颜色的,椭圆形的,方形的等等. 首先当然是要禁用掉(直接删掉)swiper属性indicator-dots,再用view组件模拟dots,对应的代码如下: <view class="swiper-container"> <swiper autoplay="auto" interval=

微信小程序实现tab左右切换效果

本文实例为大家分享了微信小程序实现tab左右切换展示的具体代码,供大家参考,具体内容如下 分析 1.设置data-current属性用于:点击当前项时,通过点击事件swichNav中处理e.dataset.current取到点击的目标值. 2.swiper组件的current组件用于控制当前显示哪一页 3.swiper组件绑定change事件switchTab,通过e.detail.current拿到当前页 wxml: <view class="record-box"> &

微信小程序实现发送验证码按钮效果

本文实例为大家分享了微信小程序发送验证码按钮效果展示的具体代码,供大家参考,具体内容如下 首先上图,最终效果如下: 实现关键点 获取验证码按钮无边框: 可以用 button::after{ border: none; } 来去除边框,或者直接用view绑定点击事件.本例子中没有使用button 点击发送后,60秒内按钮处于disable状态 点击发送后,text分为剩余秒数和后缀两部分 .form_group 使用 flex 布局 代码 .wxml <view class="form_gr

微信小程序画布圆形进度条显示效果

本文实例为大家分享了微信小程序画布圆形进度条展示的具体代码,供大家参考,具体内容如下 效果图: 代码: wxml <!--pages/test/test.wxml--> <canvas style="width: 300px; height: 200px;" canvas-id="canvasid"></canvas> js // pages/test/test.js var context = new wx.createCanv

微信小程序自定义底部弹出框

本文实例为大家分享了微信小程序底部弹出框展示的具体代码,供大家参考,具体内容如下 效果图: html <view class="commodity_screen" bindtap="hideModal" wx:if="{{showModalStatus}}"></view> <view animation="{{animationData}}" class="commodity_attr