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


Posted in Javascript onNovember 02, 2018

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

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

代码实现

wxml文件

<!--pages/evaluatepage/evaluatepage.wxml-->

<view class='container'>
 <view class='evaluate_contant'>
 <!--外层循环控制有几个评价条目 -->
 <block wx:for='{{evaluate_contant}}' wx:key='' wx:for-index='idx'>
 <view class='evaluate_item'>
  <view class='evaluate_title'>{{item}}</view>

  <!--星星评价 -->
  <view class='evaluate_box'>
  <!--内层循环展示每个评价条目的星星 -->
  <block wx:for="{{stars}}" wx:key=''>
  <image class="star-image" style="left: {{item*80}}rpx" src="{{scores[idx] > item ?(scores[idx]-item == 0.5?halfSrc:selectedSrc) : normalSrc}}">
  <view class="item" style="left:0rpx" data-score="{{item + 0.5}}" data-idx='{{idx}}' bindtap="selectLeft"></view>
  <view class="item" style="left:20rpx" data-score="{{item + 1}}" data-idx='{{idx}}' bindtap="selectRight"></view>
  </image>
  </block>
  </view>

 </view>
 </block>
 <button class='submit_button' bindtap='submit_evaluate' type='primary'>提交</button>
 </view>
</view>

js文件

Page({

 data: {
 evaluate_contant: ['评价条目一', '评价条目二', '评价条目三',],
 stars: [0, 1, 2, 3, 4],
 normalSrc: '../../images/no-star.png',
 selectedSrc: '../../images/full-star.png',
 halfSrc: '../../images/half-star.png',
 score: 0,
 scores: [0, 0, 0],
 },

 // 提交事件
 submit_evaluate: function () {
 console.log('评价得分' + this.data.scores)
 },

 //点击左边,半颗星
 selectLeft: function (e) {
 var score = e.currentTarget.dataset.score
 if (this.data.score == 0.5 && e.currentTarget.dataset.score == 0.5) {
 score = 0;
 }

 this.data.scores[e.currentTarget.dataset.idx] = score,
 this.setData({
 scores: this.data.scores,
 score: score
 })

 },

 //点击右边,整颗星
 selectRight: function (e) {
 var score = e.currentTarget.dataset.score

 this.data.scores[e.currentTarget.dataset.idx] = score,
 this.setData({
 scores: this.data.scores,
 score: score
 })
 }
})

wxss

/*评价区域 */
.container .evaluate_contant .evaluate_item {
 font-size: 30rpx;
 color: gray;
 margin-left: 20rpx;
 margin-top: 30rpx;
}

/*评价标题 */
.container .evaluate_contant .evaluate_item .evaluate_title {
 display: inline-block;
}

/*评价盒子 */
.container .evaluate_contant .evaluate_item .evaluate_box {
 position: absolute;
 left: 220rpx;
 width: 100%;
 display: inline-block;
}

/*星星评价的每个图片 */
.container .evaluate_contant .evaluate_item .evaluate_box .star-image {
 position: absolute;
 width: 40rpx;
 height: 40rpx;
 src: "../../images/no-star.png";
}

/*星星的左边和右边区域<点击左边半个星星,点击右边整个星星> */
.container .evaluate_contant .evaluate_item .evaluate_box .star-image .item {
 position: absolute;
 top: 0rpx;
 width: 20rpx;
 height: 40rpx;
}

/*按钮 */
.container .evaluate_contant .submit_button {
 height: 60rpx;
 font-size: 30rpx;
 line-height: 60rpx;
 margin: 20rpx;
}

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

Javascript 相关文章推荐
JQuery判断HTML元素是否存在的两种解决方法
Dec 26 Javascript
jquery 按键盘上的enter事件
May 11 Javascript
jQuery中ajax的post()方法用法实例
Dec 26 Javascript
深入浅析JavaScript面向对象和原型函数
Feb 06 Javascript
js和jquery中获取非行间样式
May 05 jQuery
vue与bootstrap实现时间选择器的示例代码
Aug 26 Javascript
Three.js中网格对象MESH的属性与方法详解
Sep 27 Javascript
Vue.js递归组件构建树形菜单
Dec 24 Javascript
详解实现一个通用的“划词高亮”在线笔记功能
Apr 23 Javascript
Vue路由切换页面不更新问题解决方案
Jul 10 Javascript
Javascript var变量删除原理及实现
Aug 26 Javascript
关于小程序优化的一些建议(小结)
Dec 10 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
Nov 02 #Javascript
微信小程序实现点赞、取消点赞功能
Nov 02 #Javascript
Vue利用History记录上一页面的数据方法实例
Nov 02 #Javascript
vue如何根据网站路由判断页面主题色详解
Nov 02 #Javascript
小程序实现列表点赞功能
Nov 02 #Javascript
Vue中的vue-resource示例详解
Nov 02 #Javascript
微信小程序实现列表页的点赞和取消点赞功能
Nov 02 #Javascript
You might like
php foreach、while性能比较
2009/10/15 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
2013/07/01 PHP
php中base64_decode与base64_encode加密解密函数实例
2014/11/24 PHP
php选择排序法实现数组排序实例分析
2015/02/16 PHP
PHP列出MySQL中所有数据库的方法
2015/03/12 PHP
php检测文本的编码
2015/07/26 PHP
PHP基于yii框架实现生成ICO图标
2015/11/13 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
php高清晰度无损图片压缩功能的实现代码
2018/12/09 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
PHP代码覆盖率统计详解
2020/07/22 PHP
PHP7 错误处理机制修改
2021/03/09 PHP
浅谈JavaScript 框架分类
2014/11/10 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
Bootstrap标签页(Tab)插件使用方法
2017/03/21 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
浅谈Vue的加载顺序探讨
2017/10/25 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
js实现敏感词过滤算法及实现逻辑
2018/07/24 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
linux系统使用python获取内存使用信息脚本分享
2014/01/15 Python
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
2014/11/05 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
2018/04/27 Python
如何优雅地改进Django中的模板碎片缓存详解
2018/07/04 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
Python通过kerberos安全认证操作kafka方式
2020/06/06 Python
欧洲第一的摇滚和金属乐队服装网站:EMP
2017/10/26 全球购物
如何选择使用结构还是类
2014/05/30 面试题
留学顾问岗位职责
2014/04/14 职场文书
行政处罚事先告知书
2015/07/01 职场文书
小数乘法教学反思
2016/02/22 职场文书
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL