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


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 相关文章推荐
Convert Seconds To Hours
Jun 16 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
Jul 20 Javascript
JS中innerHTML和pasteHTML的区别实例分析
Jun 22 Javascript
Angularjs 实现一个幻灯片示例代码
Sep 08 Javascript
JS实现类似51job上的地区选择效果示例
Nov 17 Javascript
微信小程序之数据双向绑定与数据操作
May 12 Javascript
AngularJS实现表格的增删改查(仅限前端)
Jul 04 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
Jan 18 Javascript
Javascript通过控制类名更改样式
May 24 Javascript
使用js在layui中实现上传图片压缩
Jun 18 Javascript
浅谈小程序globalData的那些事儿
Nov 01 Javascript
浅谈vue-props的default写不写有什么区别
Aug 09 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
PHP URL路由类实例
2013/11/12 PHP
php利用cookies实现购物车的方法
2014/12/10 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
JQuery中判断一个元素下面是否有内容或者有某个标签的判断代码
2012/02/02 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
JS实现可展开折叠层的鼠标拖曳效果
2015/10/09 Javascript
js实现将json数组显示前台table中
2017/01/10 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
Bootstrap模态框插入视频的实现代码
2017/06/25 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
JS实现获取自定义属性data值的方法示例
2018/12/19 Javascript
layui自己添加图片按钮并点击跳转页面的例子
2019/09/14 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
Python实现删除文件但保留指定文件
2015/06/21 Python
python实现的简单RPG游戏流程实例
2015/06/28 Python
python数据类型_元组、字典常用操作方法(介绍)
2017/05/30 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
Django2.1.3 中间件使用详解
2018/11/26 Python
在Pycharm terminal中字体大小设置的方法
2019/01/16 Python
python文件转为exe文件的方法及用法详解
2019/07/08 Python
Django之提交表单与前后端交互的方法
2019/07/19 Python
python 进程的几种创建方式详解
2019/08/29 Python
wxPython实现文本框基础组件
2019/11/18 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
基于python模拟TCP3次握手连接及发送数据
2020/11/06 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
高性能装备提升营地:Kammok
2019/02/27 全球购物
机电专业毕业生求职信
2013/10/27 职场文书
党支部综合考察材料
2014/05/19 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
使用pipenv管理python虚拟环境的全过程
2021/09/25 Python