微信小程序使用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 相关文章推荐
Ext对基本类型的扩展 ext,extjs,format
Dec 25 Javascript
JS截取字符串常用方法详细整理
Oct 28 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
Jan 26 Javascript
jquery实现通用版鼠标经过淡入淡出效果
Jun 15 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
Jan 29 Javascript
html5+javascript实现简单上传的注意细节
Apr 18 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
Nov 24 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
May 24 Javascript
vue 实现复制内容到粘贴板clipboard的方法
Mar 17 Javascript
动态加载、移除js/css文件的示例代码
Mar 20 Javascript
vue iview多张图片大图预览、缩放翻转
Jul 13 Javascript
使用Node.js实现base64和png文件相互转换的方法
Mar 11 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面向对象全攻略 (七) 继承性
2009/09/30 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
json格式化/压缩工具 Chrome插件扩展版
2010/05/25 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
2014/01/23 Javascript
动态载入js提高网页打开速度的方法
2014/07/04 Javascript
浅谈JavaScript函数节流
2014/12/09 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
webpack配置的最佳实践分享
2017/04/21 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
jQuery实现用户信息表格的添加和删除功能
2017/09/12 jQuery
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
VUE 全局变量的几种实现方式
2018/08/22 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
2018/09/14 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
python实现simhash算法实例
2014/04/25 Python
详解Python中的条件判断语句
2015/05/14 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
2017/11/29 Python
Python内置模块ConfigParser实现配置读写功能的方法
2018/02/12 Python
Python基础之循环语句用法示例【for、while循环】
2019/03/23 Python
python 实现矩阵按对角线打印
2019/11/29 Python
Pyside2中嵌入Matplotlib的绘图的实现
2021/02/22 Python
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
strstr()的简单实现
2013/09/26 面试题
remote接口和home接口主要作用
2013/05/15 面试题
护士自荐信范文
2013/12/15 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书
Elasticsearch 配置详解
2022/04/19 Java/Android