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


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 相关文章推荐
js 页面执行时间计算代码
Mar 04 Javascript
JavaScript Cookie 直接浏览网站分网址
Dec 08 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
Apr 19 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
Jan 02 Javascript
window.open 以post方式传递参数示例代码
Feb 27 Javascript
Javascript中的匿名函数与封装介绍
Mar 15 Javascript
jQuery简单实现提交数据出现loading进度条的方法
Mar 29 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
May 08 Javascript
基于Vue实现图片在指定区域内移动的思路详解
Nov 11 Javascript
Ajax请求时无法重定向的问题解决代码详解
Jun 21 Javascript
JavaScript队列结构Queue实现过程解析
Mar 07 Javascript
js实现QQ邮箱邮件拖拽删除功能
Aug 27 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数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
php命令行使用方法和命令行参数说明
2014/04/08 PHP
PHP加密技术的简单实现
2016/09/04 PHP
Laravel利用gulp如何构建前端资源详解
2018/06/03 PHP
PHP命名空间简单用法示例
2018/12/28 PHP
jquery统计复选框选中示例
2013/11/05 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
JavaScript实现自动对页面上敏感词进行屏蔽的方法
2015/07/27 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
2017/04/28 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
vue实现移动端拖动排序
2020/08/21 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
[01:17]炒鸡美酒第四天TA暴走
2018/06/05 DOTA
python使用opencv读取图片的实例
2017/08/17 Python
使用tensorflow实现线性回归
2018/09/08 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
python for 循环获取index索引的方法
2019/02/01 Python
在linux下实现 python 监控usb设备信号
2019/07/03 Python
Python中print函数简单使用总结
2019/08/05 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
解决HTML5中滚动到底部的事件问题
2019/08/22 HTML / CSS
台湾租车首选品牌:IWS艾维士租车
2019/05/03 全球购物
巴西购物网站:Submarino
2020/01/19 全球购物
大宝sod蜜广告词
2014/03/21 职场文书
经贸专业毕业生求职信范文
2014/05/01 职场文书
防灾减灾日活动总结
2014/08/26 职场文书
庆六一活动总结
2014/08/29 职场文书
2015年第31个教师节致辞
2015/07/31 职场文书