微信小程序如何开发?五星评分效果教程

很多做过电商项目的朋友会经常用到评分的功能,我这里正好写了一个例子,关于微信小程序如何开发问题,发出来分享一下:

我写的是5分满分制的,首先,准备3个图片, 

24112921_CWo9.png

,像这样的,分别代表分数为0,0.5,1 时的状态,

效果图:(以3.5为例) 

24112921_OU4A.png

然后上代码:

js:

function pingfenxing(pingfen){

     var that=this,  //这里是图片的路径,自己需要改

         data={

         ling:"img/pingfen0.png",

         zheng:"img/pingfen2.png",

         ban:"img/pingfen1.png"    },

         nums=[];//这里是返回图片排列的顺序的数组,这里要注意在页面使用的时候图片的路径,不过使用网络图片无所谓    if((pingfen/0.5)%2==0){//如果评分为整数,如4.0、5.0

          for(var i=0;i<5;i++){

            if(i

              nums.push(data.zheng);

            }else{

              nums.push(data.ling);

            }

          }

      }else{//评分不为整数,如3.5、2.5

          for(var i=0;i<5;i++){

            if(i

              nums.push(data.zheng);//先把整数分离出来,如:3.5,这里就是先把3分离出来,把代表1的图片放进去

            }else if(i==(pingfen-0.5)){

              nums.push(data.ban);//把小数的部分分离出来,如:3.5里的0.5,把代表0.5的图片放进去

            }else{

              nums.push(data.ling);//然后剩下的就是没有满的用代表0的图片放进去,如:3.5,里面放进去了3个代表1的图片,然后放入了1个代表0.5的图片,最后还剩一个图片的位置,这时候就放代表0的图片

            }

          }

      }

       return num; } module.exports = {   pingfen:pingfenxing }

 

WXML代码:

<view class="pingfen">

     <block wx:for="{{item.pingfenpic}}" wx:key="{{item.id}}" wx:for-item="pingfen">

           <image class="img" src="{{pingfen}}"></image>

     </block>

     <text data-pingfen="{{item.pingfen}}" >{{item.pingfen}}</text>

</view>

 

 

 

使用这个功能的页面的JS代码:

var pingxin=require("../../utils/pingxing.js");

Page({  data:{    tuangou:tuangou}//我这里是在页面加载的时候先从后台获取数据,把数据的值赋值给tuangou,然后遍历将数据里面的参数拿出来,然后再把相应的评分中的图片排列顺序放到这条数据中的pingfenpic中保存,然后在页面中渲染即可

onLoad:function(options){

    console.log('onLoad');

    var that=this;

    // 页面初始化 options为页面跳转所带来的参数

    wx.request({

      url: 'https://wxapp.com/tuangou',//这里是你请求数据的接口地址,自己填写

      data: {},

      method: 'GET',

      success: function(res){

        // success

        console.log(res.data.tuangou);

 

        let tuangou=res.data.tuangou;

        for(let i=0;i

            tuangou[i].pingfenpic=pingxin.pingfen(parseFloat(tuangou[i].pingfen));//使用函数将评分变为图片排列的数组,这里要注意,如果评分传过来的是字符串  需要将它变为数字

        }

        that.setData({

          tuangou:tuangou

        });

       console.log(that.data.tuangou);

 

      },

      fail: function() {

        // fail

      },

      complete: function() {

        // complete

      }

    });  }

});

转载于:https://my.oschina.net/u/3396785/blog/907948

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值