微信小程序使用template标签实现五星评分功能


Posted in Javascript onNovember 03, 2018

前言

微信小程序特点“无须安装,无须卸载,触手可及,用完即走”,适合轻量级应用快速开发。小程序模版思想是它开发的核心思想,可以帮助开发者减少很多重复代码,我们来看看怎么在小程序中实现市面上常用的评分组件, 看看效果图:

微信小程序使用template标签实现五星评分功能

创建模版

wxml文件:

以<template>为根节点,添加name属性用来区分不同模版:

<template name="starsTemplate">
 <view class='stars-container'>
  <view class='stars'>
  <block wx:for="{{stars}}" wx:for-item="i" wx:key="position">
   <image wx:if="{{i}}" src='/images/icon/star.png'></image>
    <!-- <image wx:elif="{{i==2}}" src='/images/icon/none-star.png'></image> -->
    <image wx:else src='/images/icon/none-star.png'></image>
  </block>
  </view>
  <text class='star-score'>{{score}}</text>
 </view>
</template>

wxss文件:

这里我们采用小程序推荐使用flex模型,横向排列五颗星星图片。

.stars-container {
 display: flex;
 flex-direction: row;
}
.stars {
 display: flex;
 flex-direction: row;
 height: 17rpx;
 margin-right: 24rpx;
 margin-top: 6rpx;
}
.stars image {
 padding-left: 3rpx;
 height: 17rpx;
 width: 17rpx;
}
.star-score {
 color: #1f3463;
}

模版使用

引用wxml模版:

<import src="../stars/stars-template.wxml" /> <!--这里引用模板文件最好使用相对路径-->
<template is="starsTemplate" data="{{stars:stars,score:average}}" /> <!--is指定使用模版的名称-->

引用wxss模版:

在使用模版文件对应的wxss文件中输入以下表达式即可

@import "../stars/stars-template.wxss";

数据装换:

我看到在使用模版wxml文件时有个data=“{{stars:stars,score:average}}”属性和数据,表示指定模版的数据,我们一般从后台获取的评分数据一般都是一个数字,比如:3.5,4,5等等,我们需要把这些数字转换成五个等级数组,决定评分星星显示什么图片,这里我们用1表示显示高亮的,0表示灰色星星,我们也可以在一个2表示半颗高亮的星星表示0.5的评分:

function convertToStarsArray(stars) {
 var num = stars.toString().substring(0, 1);
 var array = [];
 for (var i = 1; i <= 5; i++) {
  if (i < num) {
   array.push(1);
  } else {
   array.push(0);
  }
 }
 return array;
}

案例wxml代码:

<import src="stars/stars-template.wxml" />
<view style='margin:100rpx'>
 <template is="starsTemplate" data="{{stars:stars,score:average}}" />
</view>

到这里基本结束了,我们这评分转换成我们需要的评分数组,在使用模版的地方传入数据即可。

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

Javascript 相关文章推荐
javascript+xml技术实现分页浏览
Jul 27 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
Oct 10 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
Dec 15 Javascript
js实现将选中值累加到文本框的方法
Aug 12 Javascript
js简单网速测试方法完整实例
Dec 15 Javascript
JS选取DOM元素的简单方法
Jul 08 Javascript
Bootstrap基本样式学习笔记之表格(2)
Dec 07 Javascript
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
最通俗易懂的javascript变量提升详解
Aug 05 Javascript
javaScript手机号码校验工具类PhoneUtils详解
Dec 08 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
Aug 10 Javascript
vue项目引入ts步骤(小结)
Oct 31 Javascript
基于Vue-cli快速搭建项目的完整步骤
Nov 03 #Javascript
微信小程序实现笑脸评分功能
Nov 03 #Javascript
小程序实现五星点评效果
Nov 03 #Javascript
微信小程序实现星星评价效果
Nov 02 #Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
Nov 02 #Javascript
微信小程序实现点赞、取消点赞功能
Nov 02 #Javascript
Vue利用History记录上一页面的数据方法实例
Nov 02 #Javascript
You might like
php生成html文件方法总结
2014/12/01 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
Mac系统下Webstorm快捷键整理大全
2017/05/28 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
python图像处理之反色实现方法
2015/05/30 Python
深入理解Python对Json的解析
2017/02/14 Python
Python标准库sched模块使用指南
2017/07/06 Python
Python3计算三角形的面积代码
2017/12/18 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
Flask之请求钩子的实现
2018/12/23 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
django rest framework 过滤时间操作
2020/07/12 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
html5适合移动应用开发的12大特性
2014/03/19 HTML / CSS
什么是设计模式
2012/06/17 面试题
高中生家长寄语大全
2014/04/03 职场文书
关于美容院的活动方案
2014/08/14 职场文书
庆祝三八妇女节标语
2014/10/09 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
幼儿园小班开学寄语
2015/05/27 职场文书
房屋质量投诉书
2015/07/02 职场文书
优秀党员先进事迹材料2016
2016/02/29 职场文书