微信小程序使用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 相关文章推荐
禁止拷贝网页内容的js代码
Jan 22 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
Feb 02 Javascript
jQuery获得子元素个数的方法
Apr 14 Javascript
thinkphp实现无限分类(使用递归)
Dec 19 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
Jun 21 Javascript
JavaScript、C# URL编码、解码总结
Jan 21 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
Mar 29 Javascript
vue-router实现webApp切换页面动画效果代码
May 25 Javascript
详解使用angular的HttpClient搭配rxjs
Sep 01 Javascript
node-red File读取好保存实例讲解
Sep 11 Javascript
layui实现form表单同时提交数据和文件的代码
Oct 25 Javascript
原生JavaScript实现五子棋游戏
Nov 09 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之第六天
2006/10/09 PHP
PHP 检查扩展库或函数是否可用的代码
2010/04/06 PHP
提高PHP编程效率的方法
2013/11/07 PHP
php框架知识点的整理和补充
2021/03/01 PHP
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
2016/04/27 Javascript
javascript事件模型介绍
2016/05/31 Javascript
检查表单元素的值是否为空的实例代码
2016/06/16 Javascript
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
2017/12/08 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
java遇到微信小程序 &quot;支付验证签名失败&quot; 问题解决
2019/12/22 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
Python编程argparse入门浅析
2018/02/07 Python
django 多数据库配置教程
2018/05/30 Python
Python线程池模块ThreadPoolExecutor用法分析
2018/12/28 Python
python 二维数组90度旋转的方法
2019/01/28 Python
python如何统计代码运行的时长
2019/07/24 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
Tensorflow实现部分参数梯度更新操作
2020/01/23 Python
Python 如何批量更新已安装的库
2020/05/26 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
香港万宁官方海外旗舰店:香港健与美连锁店
2018/09/27 全球购物
运动员获奖感言
2014/08/15 职场文书
社区务虚会发言材料
2014/10/20 职场文书
通知格式
2015/04/27 职场文书
python爬虫selenium模块详解
2021/03/30 Python
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis
PHP中多字节字符串操作实例详解
2021/08/23 PHP