小程序星級評分的實現

<!--pages/test/test.wxml-->
<view>
<view>一:顯示後臺給的評分</view>
<block wx:for="{{one_1}}">
<image src='../../images/use_sc2.png'></image>
</block>
<block wx:for="{{two_1}}">
<image src='../../images/use_sc.png'></image>
</block>
</view>
<view>這裏num給的是幾分就顯示幾顆星星</view>
 
<view style='margin-top:60px;'>二:顯示用戶選擇的評分</view>
<block wx:for="{{one_2}}" wx:key="index">
<image catchtap='in_xin' id='{{index+1}}' data-in='use_sc2' src='../../images/use_sc2.png'></image>
</block>
<block wx:for="{{two_2}}" wx:key="index">
<image catchtap='in_xin' id='{{index+1}}' data-in='use_sc' src='../../images/use_sc.png'></image>
</block>
<view>{{one_2}}星</view>

 

// pages/test/test.js
Page({
  /**
   * 統一滿分爲5星
   */
  data: {
    num: 4,//後端給的分數,顯示相應的星星
    one_1: '',
    two_1: '',
    one_2: 0,
    two_2: 5
  },
  onLoad: function (options) {
    //情況一:展示後臺給的評分
        this.setData({
          one_1: this.data.num,
          two_1: 5 - this.data.num
        })
  },
 
  //情況二:用戶給評分
  in_xin:function(e){
    var in_xin = e.currentTarget.dataset.in;
    var one_2;
    if (in_xin === 'use_sc2'){
      one_2 = Number(e.currentTarget.id);
    } else {
      one_2 = Number(e.currentTarget.id) + this.data.one_2;
    }
    this.setData({
      one_2: one_2,
      two_2: 5 - one_2
    })
  }
})

 

/* pages/test/test.wxss */
image{
  height: 60rpx;
  width: 60rpx;
  display: inline-block
}

 

代碼可直接套用,需要更改圖片地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章