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


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 相关文章推荐
JavaScript去掉空格的方法集合
Dec 28 Javascript
js跑步算法的实现代码
Dec 04 Javascript
不同编码的页面表单数据乱码问题解决方法
Feb 15 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
Mar 17 Javascript
AngularJS 购物车全选/取消全选功能的实现方法
Aug 14 Javascript
详解如何优雅地在React项目中使用Redux
Dec 28 Javascript
解决Jquery下拉框数据动态获取的问题
Jan 25 jQuery
Vue打包后出现一些map文件的解决方法
Feb 13 Javascript
vue中tab选项卡的实现思路
Nov 25 Javascript
layer设置maxWidth及maxHeight解决方案
Jul 26 Javascript
js get和post请求实现代码解析
Feb 06 Javascript
vue 检测用户上传图片宽高的方法
Feb 06 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
Terran兵种介绍
2020/03/14 星际争霸
php中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
php类常量的使用详解
2013/06/08 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
Javascript 学习笔记 错误处理
2009/07/30 Javascript
picChange 图片切换特效的函数代码
2010/05/06 Javascript
基于jQuery实现的美观星级评论打分组件代码
2015/10/30 Javascript
跟我学习javascript的严格模式
2015/11/16 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
原生js实现放大镜特效
2017/03/08 Javascript
React-Native使用Mobx实现购物车功能
2017/09/14 Javascript
AngularJs 终极购物车(实例讲解)
2017/11/08 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
Python I/O与进程的详细讲解
2019/03/08 Python
python实现广度优先搜索过程解析
2019/10/19 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
keras 自定义loss model.add_loss的使用详解
2020/06/22 Python
Python实现GIF图倒放
2020/07/16 Python
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
2013/10/10 HTML / CSS
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
演讲稿怎么写
2014/01/07 职场文书
《中华少年》教学反思
2014/02/15 职场文书
暑期培训随笔感言
2014/03/10 职场文书
学校门卫岗位职责
2014/03/16 职场文书
三月学雷锋月活动总结
2014/04/28 职场文书
环境保护标语
2014/06/20 职场文书
环保项目建议书
2014/08/26 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
安全责任协议书范本
2016/03/23 职场文书