微信小程序使用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 相关文章推荐
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
Sep 01 Javascript
js跨域请求数据的3种常用的方法
Dec 01 Javascript
jquery获取select选中值的方法分析
Dec 22 Javascript
解读Bootstrap v4 sass设计
May 29 Javascript
理解javascript中的闭包
Jan 11 Javascript
Javascript自定义事件详解
Jan 13 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
Jan 14 Javascript
jQuery+pjax简单示例汇总
Apr 21 jQuery
django js 实现表格动态标序号的实例代码
Jul 12 Javascript
js实现限定区域范围拖拉拽效果
Nov 20 Javascript
vue路由实现登录拦截
Mar 24 Vue.js
给原生html中添加水印遮罩层的实现示例
Apr 02 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
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
php 采集书并合成txt格式的实现代码
2009/03/01 PHP
PHP 简单数组排序实现代码
2009/08/05 PHP
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
简单谈谈php浮点数精确运算
2016/03/10 PHP
php中类和对象:静态属性、静态方法
2017/04/09 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
2019/10/30 PHP
jquery搜索框效果实现方法
2015/01/16 Javascript
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
Vue组件选项props实例详解
2017/08/18 Javascript
JavaScrip关于创建常量的知识点
2017/12/07 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
JQuery属性操作与循环用法示例
2019/05/15 jQuery
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
Vue.js组件使用props传递数据的方法
2019/10/19 Javascript
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
python基础教程之对象和类的实际运用
2014/08/29 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
2018/04/23 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
Python目录和文件处理总结详解
2019/09/02 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
CSS3的文字阴影—text-shadow的使用方法
2012/12/25 HTML / CSS
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
优秀员工演讲稿
2014/05/19 职场文书
暑期培训班招生方案
2014/08/26 职场文书
冰峪沟导游词
2015/02/09 职场文书
管理人员岗位职责
2015/02/14 职场文书
2015年物资管理工作总结
2015/05/20 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
校园歌手大赛主持词
2015/07/03 职场文书