微信小程序实现星级评分

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

第一种方法:

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)
      })
    }
  },
})

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

(0)

相关推荐

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

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

  • 微信小程序实现星级评分

    本文实例为大家分享了微信小程序实现星级评分的具体代码,供大家参考,具体内容如下 第一种方法: WXML代码: <view> 星级评分 </view> <view> <block class="brightStars"> <image data-index='0' data-no="{{item}}" wx:for="{{starsBox}}" bindtap="changePic&q

  • 微信小程序实现展示评分结果功能

    本文实例为大家分享了微信小程序实现展示评分结果的具体代码,供大家参考,具体内容如下 星星评分展示1 根据评分展示整颗行星或者半颗星星 星星评分展示2 根据评分按照小数点展示整颗行星或者部分星星 wxml <view class="conmmentbox"> <view class="starbox"> <view class="stars2" style="width: 130rpx"> &

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

    本文实例为大家分享了微信小程序实现星级评价效果的具体代码,供大家参考,具体内容如下 效果预览: 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

  • 微信小程序实现星星评分效果

    本文实例为大家分享了微信小程序实现星星评分的具体代码,供大家参考,具体内容如下 思路很简单,小星星都是一张张独立的图片,点击的时候改变图片的路径就可以了. 我是用背景图片做的,先给盒子设置背景图片为灰色的小星星,盒子是根据js文件中的stars数组循环出来的,根据flag的值确定是灰色的小星星还是黄色的小星星,点击的时候获取当下这个盒子的index值,然后去更改stars数组中索引值小于等于index的每一项的flag就可以了. 当然,也可以用类名来控制灰色和黄色的小星星,在点击的时候操作类名也

  • 微信小程序实现星级评价

    本文实例为大家分享了微信小程序星级评价的具体代码,供大家参考,具体内容如下 效果图 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

  • 微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现

    一.前言 项目中遇到的评分相关的需求其实还挺多.之前也写过网页中关于评分功能实现的文档.这次,是基于微信小程序开发而提炼出一个简单方便使用的方法,网页开发中同样可用.这次使用的还是字体,主要是字体这个比较通用,颜色,大小都可以自己定义.当然了,来的最快的其实是用图片代替. 二.微信小程序中评分功能实现 1.css文件中引入字体文件.也可以点此下载字体文件 @font-face { font-family: 'FontAwesome'; src: url('https://netdna.boots

  • 微信小程序 五星评分(包括半颗星评分)实例代码

    微信小程序 五星评分 一位同学说要写五星评分.要有半颗星的评分. 于是我做了个玩具.有空了做模块化,这代码看不下去了. 代码: 1.index.wxml <!--index.wxml--> <block wx:for="{{stars}}"> <image class="star-image" style="left: {{item*150}}rpx" src="{{key > item ?(key-

  • 微信小程序 五星评分的实现实例

    微信小程序 五星评分 五星级评分效果: <view> <view class="zan-font-16 my-ib" bindtap="myStarChoose"> <block wx:for="{{starMap}}"> <text wx:if="{{star>=index+1}}" style="padding-right: .5em" class=&qu

随机推荐