微信小程序实现星级评价效果


Posted in Javascript onDecember 28, 2018

本文实例为大家分享了微信小程序实现星级评价效果的具体代码,供大家参考,具体内容如下

效果预览:

微信小程序实现星级评价效果

wxml代码部分:

<view class='topMaxBox'>
 <view class='topLeft' style='width: {{ imgW }}px; height: {{ imgW }}px; flex: {{ imgW }}px 0 0;'>
 <image src='http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg'></image>
 </view>
 <view class='topRight'>
 <view class='r_top'>
 <text>商品名称</text>
 <text>{{ evaluate }}</text>
 </view>
 <view class='r_bottom' catchtouchmove='moveFun' catchtouchstart='moveFun'>
 <image src='{{ starSrc }}'></image>
 </view>
 </view>
</view>

wxss代码部分:

.topMaxBox{
 padding: 5%;
 display: flex;
 flex-direction: row;
}

.topLeft{
 border: 1px solid #e5e5e5;
 margin-right: 10px;
}

.topLeft image{
 width: 100%;
 height: 100%;
}

.topRight{
 flex: 1;
 display: flex;
 flex-direction: column;
 justify-content: center;
}

.r_top{
 display: flex;
 justify-content: space-between;
 margin-bottom: 2%;
}

.r_bottom image{
 width: 130px;
 height: 18px;
}

app.sysInfo()封装在了app.js 文件全局使用下面是代码部分

/**
 * 获取系统信息
 */
 sysInfo: function () {
 let res = wx.getSystemInfoSync();
 let info = {
 width: res.windowWidth,//可使用窗口宽度
 height: res.windowHeight,//可使用窗口高度
 system: res.system,//操作系统版本
 statusBarHeight: res.statusBarHeight//状态栏的高度
 }
 return info;
 },

js代码部分:

const app = new getApp();

// page/issueEvaluate/issueEvaluate.js
Page({

 /**
 * 页面的初始数据
 */
 data: {
 imgW: app.sysInfo().width * 0.146,//根据屏幕宽度动态设置图片宽度
 starLen: 5,//星星评价的初始等级
 starSrcArr: ['../../image/star2-1.png', '../../image/star2-2.png', '../../image/star2-3.png', '../../image/star2-4.png', '../../image/star2-5.png', '../../image/star2-6.png'],//星星评价的图片资源数组
 starSrc: '../../image/star2-6.png',//星星评价的初始图片
 evaluate: '非常好',
 evaluateArr: ['非常差', '差', '一般', '好', '比较好', '非常好']
 },

 moveFun: function (e) {
 let imgBoxW = app.sysInfo().width * 0.146 + 10;//商品图片X轴尽头坐标(即星星的初始坐标值)
 let starW = 130 / 5;//每一颗星星的宽度(用于计算星星的X轴坐标)
 let xAxial = e.touches[0].clientX;//获取当前触摸的X轴坐标

 //如果当前触摸的X轴坐标小于初始坐标则显示为0颗星星
 if (xAxial < imgBoxW) {
 this.data.starLen = 0;
 //如果当前触摸的X轴坐标大于初始坐标并小于第2颗星星的初始坐标则显示为1颗星星
 } else if (imgBoxW + (starW * 2) > xAxial && xAxial > imgBoxW) {
 this.data.starLen = 1;
 //如果当前触摸的X轴坐标大于第2颗星星的初始坐标并小于第3颗星星的初始坐标则显示为2颗星星
 } else if (imgBoxW + (starW * 3) > xAxial && xAxial > imgBoxW + (starW * 2)) {
 this.data.starLen = 2;
 //如果当前触摸的X轴坐标大于第3颗星星的初始坐标并小于第4颗星星的初始坐标则显示为3颗星星
 } else if (imgBoxW + (starW * 4) > xAxial && xAxial > imgBoxW + (starW * 3)) {
 this.data.starLen = 3;
 //如果当前触摸的X轴坐标大于第4颗星星的初始坐标并小于第5颗星星的初始坐标则显示为4颗星星
 } else if (imgBoxW + (starW * 5) > xAxial && xAxial > imgBoxW + (starW * 4)) {
 this.data.starLen = 4;
 //如果当前触摸的X轴坐标大于第5颗星星初始坐标则显示为5颗星星
 } else if (xAxial > imgBoxW + (starW * 5)) {
 this.data.starLen = 5;
 }
 //设置img标签的SRC路径 替换成对应的星星图片
 this.data.starSrc = this.data.starSrcArr[this.data.starLen];
 //设置为对应的评价等级文字
 this.data.evaluate = this.data.evaluateArr[this.data.starLen];
 this.setData({
 starSrc: this.data.starSrc,
 evaluate: this.data.evaluate
 });
 },

})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在Javascript里访问SharePoint列表数据的实现方法
May 22 Javascript
js中function()使用方法
Dec 24 Javascript
jquery显示隐藏input对象
Jul 21 Javascript
jQuery中nextUntil()方法用法实例
Jan 07 Javascript
jQuery中bind(),live(),delegate(),on()绑定事件方法实例详解
Jan 19 Javascript
需要牢记的JavaScript基础知识
Sep 25 Javascript
Bootstrap基本布局实现方法详解
Nov 25 Javascript
AngularJS ui-router (嵌套路由)实例
Mar 10 Javascript
Vue学习笔记进阶篇之函数化组件解析
Jul 21 Javascript
AngularJS自定义表单验证功能实例详解
Aug 24 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
Mar 10 Javascript
JavaScript 装逼指南(js另类写法)
May 10 Javascript
微信小程序实现日历效果
Dec 28 #Javascript
Mint UI实现A-Z字母排序的城市选择列表
Dec 28 #Javascript
axios携带cookie配置详解(axios+koa)
Dec 28 #Javascript
微信小程序日历/日期选择插件使用方法详解
Dec 28 #Javascript
解决echarts的多个折现数据出现坐标和值对不上的问题
Dec 28 #Javascript
微信小程序时间控件picker view使用详解
Dec 28 #Javascript
微信小程序时间选择插件使用详解
Dec 28 #Javascript
You might like
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
一个ftp类(ini.php)
2006/10/09 PHP
小偷PHP+Html+缓存
2006/12/20 PHP
php日历制作代码分享
2014/01/20 PHP
详解PHP队列的实现
2019/03/14 PHP
javascript中的有名函数和无名函数
2007/10/17 Javascript
select组合框option的捕捉实例代码
2008/09/30 Javascript
JQuery AJAX提交中文乱码的解决方案
2010/07/02 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
2014/02/07 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
原生js实现日期联动
2015/01/12 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
关于vue-resource报错450的解决方案
2017/07/24 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
2018/04/17 jQuery
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
2020/11/02 Javascript
python为tornado添加recaptcha验证码功能
2014/02/26 Python
python获得linux下所有挂载点(mount points)的方法
2015/04/29 Python
python正则表达式的使用
2017/06/12 Python
机器学习python实战之手写数字识别
2017/11/01 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
Python笔试面试题小结
2019/09/07 Python
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
地球鞋加拿大官网:Earth Shoes Canada
2020/11/17 全球购物
教育专业个人求职信
2013/12/02 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
公司感恩节活动策划书
2014/10/11 职场文书
师德先进个人事迹材料
2014/12/19 职场文书
个园导游词
2015/02/04 职场文书
教师读书笔记
2015/06/29 职场文书
网络营销实训总结
2015/08/03 职场文书
继续教育心得体会(共6篇)
2016/01/19 职场文书
SpringBoot读取Resource下文件的4种方法
2021/07/02 Java/Android