微信小程序使用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 相关文章推荐
用jscript启动sqlserver
Jun 21 Javascript
javascript 循环调用示例介绍
Nov 20 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
Apr 30 Javascript
javascript实现的网站访问量统计代码
Dec 20 Javascript
JavaScript函数内部属性和函数方法实例详解
Mar 17 Javascript
深入理解vue.js双向绑定的实现原理
Dec 05 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
Jan 21 Javascript
Node.js安装配置图文教程
May 10 Javascript
原生js+cookie实现购物车功能的方法分析
Dec 21 Javascript
node puppeteer(headless chrome)实现网站登录
May 09 Javascript
ES6 对象的新功能与解构赋值介绍
Feb 05 Javascript
PHP读取远程txt文档到数组并实现遍历
Aug 25 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中构造函数和析构函数解析
2014/10/10 PHP
最新制作ThinkPHP3.2.3完全开发手册
2015/11/23 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
JS通过相同的name进行表格求和代码
2013/08/18 Javascript
jquery中的查找parents与closest方法之间的区别
2013/12/02 Javascript
jQuery中animate用法实例分析
2015/03/09 Javascript
jquery实现加载进度条提示效果
2015/11/23 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
2016/12/17 Javascript
MUI  Scroll插件的使用详解
2017/04/13 Javascript
ES6新特性三: Generator(生成器)函数详解
2017/04/21 Javascript
JS鼠标滚动分页效果示例
2017/07/05 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
2018/08/09 jQuery
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
js实现多图和单图上传显示
2019/12/18 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
python多线程操作实例
2014/11/21 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
python matplotlib库绘制条形图练习题
2019/08/10 Python
详解python常用命令行选项与环境变量
2020/02/20 Python
如何用Python 加密文件
2020/09/10 Python
Python日志打印里logging.getLogger源码分析详解
2021/01/17 Python
python如何构建mock接口服务
2021/01/28 Python
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
土木工程建筑专业毕业生求职信
2013/10/21 职场文书
大学生四年生活自我鉴定
2013/11/21 职场文书
医务人员自我评价
2014/01/26 职场文书
先进工作者申报材料
2014/12/23 职场文书
初三化学教学反思
2016/02/22 职场文书
sql字段解析器的实现示例
2021/06/23 SQL Server