用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

微客吧 首页 教程 微信小程序 新手教程 查看内容

微信小程序五星评分效果

纸飞机 2018-3-8 09:35

分享者:小强 很多做过电商项目的朋友会经常用到评分的功能,我这里正好写了一个例子,发出来分享一下:我写的是5分满分制的,首先,准备3个图片, ,像这样的,分别代表分数为0,0.5,1 时的状态,效果图:(以3.5 ...

分享者:小强
很多做过电商项目的朋友会经常用到评分的功能,我这里正好写了一个例子,发出来分享一下:

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

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

效果图:(以3.5为例)

然后上代码:

js:

  1. function pingfenxing(pingfen){
  2. var that=this,  //这里是图片的路径,自己需要改
  3. data={
  4. ling:"img/pingfen0.png",
  5. zheng:"img/pingfen2.png",
  6. ban:"img/pingfen1.png"    },
  7. nums=[];//这里是返回图片排列的顺序的数组,这里要注意在页面使用的时候图片的路径,不过使用网络图片无所谓    if((pingfen/0.5)%2==0){//如果评分为整数,如4.0、5.0
  8. for(var i=0;i<5;i++){
  9. if(i<pingfen){
  10. nums.push(data.zheng);
  11. }else{
  12. nums.push(data.ling);
  13. }
  14. }
  15. }else{//评分不为整数,如3.5、2.5
  16. for(var i=0;i<5;i++){
  17. if(i<pingfen-0.5){
  18. nums.push(data.zheng);//先把整数分离出来,如:3.5,这里就是先把3分离出来,把代表1的图片放进去
  19. }else if(i==(pingfen-0.5)){
  20. nums.push(data.ban);//把小数的部分分离出来,如:3.5里的0.5,把代表0.5的图片放进去
  21. }else{
  22. nums.push(data.ling);//然后剩下的就是没有满的用代表0的图片放进去,如:3.5,里面放进去了3个代表1的图片,然后放入了1个代表0.5的图片,最后还剩一个图片的位置,这时候就放代表0的图片
  23. }
  24. }
  25. }
  26. return num; } module.exports = {   pingfen:pingfenxing }

WXML代码:

  1. class="pingfen">
  2. wx:for="{{item.pingfenpic}}" wx:key="{{item.id}}" wx:for-item="pingfen">
  3. class="img" src="{{pingfen}}">
  4. data-pingfen="{{item.pingfen}}" >{{item.pingfen}}

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

  1. var pingxin=require("../../utils/pingxing.js");
  2. Page({  data:{    tuangou:tuangou}//我这里是在页面加载的时候先从后台获取数据,把数据的值赋值给tuangou,然后遍历将数据里面的参数拿出来,然后再把相应的评分中的图片排列顺序放到这条数据中的pingfenpic中保存,然后在页面中渲染即可
  3. onLoad:function(options){
  4. console.log('onLoad');
  5. var that=this;
  6. // 页面初始化 options为页面跳转所带来的参数
  7. wx.request({
  8. url: 'https://wxapp.com/tuangou',//这里是你请求数据的接口地址,自己填写
  9. data: {},
  10. method: 'GET',
  11. success: function(res){
  12. // success
  13. console.log(res.data.tuangou);
  14. let tuangou=res.data.tuangou;
  15. for(let i=0;i<tuangou.length;i++){
  16. tuangou[i].pingfenpic=pingxin.pingfen(parseFloat(tuangou[i].pingfen));//使用函数将评分变为图片排列的数组,这里要注意,如果评分传过来的是字符串 需要将它变为数字
  17. }
  18. that.setData({
  19. tuangou:tuangou
  20. });
  21. console.log(that.data.tuangou);
  22. },
  23. fail: function() {
  24. // fail
  25. },
  26. complete: function() {
  27. // complete
  28. }
  29. });  }
  30. });
鲜花
鲜花
握手
握手
雷人
雷人
路过
路过
鸡蛋
鸡蛋
分享至 : QQ空间
收藏