微信小程序使用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 相关文章推荐
javascript错误的认识不用关心内存管理
Dec 15 Javascript
js与C#进行时间戳转换
Nov 14 Javascript
javascript实现图片自动和可控的轮播切换特效
Apr 13 Javascript
JS实现支持多选的遍历下拉列表代码
Aug 20 Javascript
js仿百度登录页实现拖动窗口效果
Mar 11 Javascript
实用又漂亮的BootstrapValidator表单验证插件
May 30 Javascript
JavaScript实现shuffle数组洗牌操作示例
Jan 03 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
Feb 01 Javascript
使用vue实现各类弹出框组件
Jul 03 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
Dec 09 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
Apr 27 Javascript
vue+iview使用树形控件的具体使用
Nov 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
PHP使用SOAP调用.net的WebService数据
2013/11/12 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
PHP代码加密的方法总结
2020/03/13 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
Swiper自定义分页器使用详解
2017/12/28 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
2018/08/24 Javascript
详解vue2.0 资源文件assets和static的区别
2018/11/27 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
2019/11/21 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
Vue——解决报错 Computed property &quot;****&quot; was assigned to but it has no setter.
2020/12/19 Vue.js
Python编程中用close()方法关闭文件的教程
2015/05/24 Python
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
Python数据结构之哈夫曼树定义与使用方法示例
2018/04/22 Python
python 成功引入包但无法正常调用的解决
2020/03/09 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
泰国第一在线超市:Tops
2021/02/13 全球购物
热能动力工程毕业生自荐信
2013/11/07 职场文书
法学毕业生自我鉴定
2013/11/08 职场文书
酒店营销策划方案
2014/02/07 职场文书
社区党务公开实施方案
2014/03/18 职场文书
心理学专业求职信
2014/06/16 职场文书
租车协议书
2015/01/27 职场文书
乡镇法制宣传日活动总结
2015/05/05 职场文书
教师个人教学反思
2016/02/23 职场文书
初中运动会闭幕词范本3篇
2019/12/09 职场文书
Python中for后接else的语法使用
2021/05/18 Python
使用Python拟合函数曲线
2022/04/14 Python