微信小程序使用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 相关文章推荐
JSON 和 JavaScript eval使用说明
Jun 13 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
Dec 16 Javascript
Javascript 学习笔记之 对象篇(二) : 原型对象
Jun 24 Javascript
jQuery中prependTo()方法用法实例
Jan 08 Javascript
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
May 19 Javascript
javascript基本语法
May 31 Javascript
如何检测JavaScript的各种类型
Jul 30 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
Aug 15 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
Mar 08 Javascript
微信小程序实现城市列表选择
Jun 05 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
Oct 24 Javascript
vue微信分享插件使用方法详解
Feb 18 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
thinkphp的静态缓存用法分析
2014/11/29 PHP
ThinkPHP中关联查询实例
2014/12/02 PHP
php输出xml属性的方法
2015/03/19 PHP
PHP中实现Bloom Filter算法
2015/03/30 PHP
php单例模式的简单实现方法
2016/06/10 PHP
Laravel5中Cookie的使用详解
2017/05/03 PHP
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
2014/03/03 Javascript
js 获取元素下面所有li的两种方法
2014/04/14 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
JavaScript优化以及前段开发小技巧
2017/02/02 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
js统计页面上每个标签的数量实例代码
2018/05/29 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
vue中input的v-model清空操作
2019/09/06 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
Express 配置HTML页面访问的实现
2020/11/01 Javascript
深入了解Python中pop和remove的使用方法
2018/01/09 Python
mac安装scrapy并创建项目的实例讲解
2018/06/13 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
python中partial()基础用法说明
2018/12/30 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
python的debug实用工具 pdb详解
2019/07/12 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
婚前协议书
2014/04/15 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
财务经理岗位职责
2015/01/31 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
单位同意报考证明
2015/06/17 职场文书
行政处罚听证告知书
2015/07/01 职场文书
python实现层次聚类的方法
2021/11/01 Python
Golang 并发下的问题定位及解决方案
2022/03/16 Golang