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


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制作的产品广告效果
Dec 08 Javascript
Javascript调用C#代码
Jan 17 Javascript
8个超棒的学习 jQuery 的网站 推荐收藏
Apr 02 Javascript
javascript跨浏览器的属性判断方法
Mar 16 Javascript
点评js异步加载的4种方式
Dec 22 Javascript
JavaScript中的splice方法用法详解
Jul 20 Javascript
分析javascript原型及原型链
Mar 18 Javascript
JavaScript实现多态和继承的封装操作示例
Aug 20 Javascript
Vue源码解读之Component组件注册的实现
Aug 24 Javascript
Node登录权限验证token验证实现的方法示例
May 25 Javascript
Vue实现省市区三级联动
Dec 27 Vue.js
详解Vue2的diff算法
Jan 06 Vue.js
使用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
信用卡效验程序
2006/10/09 PHP
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
Javascript Request获取请求参数如何实现
2012/11/28 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
javascript与css3动画结合使用小结
2015/03/11 Javascript
js简单实现图片延迟加载的方法
2016/07/19 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
浅析微信扫码登录原理(小结)
2018/10/29 Javascript
ES6 Promise对象的应用实例分析
2019/06/27 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
一行JavaScript代码如何实现瀑布流布局
2020/12/11 Javascript
python比较两个列表是否相等的方法
2015/07/28 Python
Python中subprocess的简单使用示例
2015/07/28 Python
Linux下为不同版本python安装第三方库
2016/08/31 Python
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
python实现控制COM口的示例
2019/07/03 Python
使用Django搭建web服务器的例子(最最正确的方式)
2019/08/29 Python
浅谈Python_Openpyxl使用(最全总结)
2019/09/05 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
python获取栅格点和面值的实现
2020/03/10 Python
Python库skimage绘制二值图像代码实例
2020/04/10 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
2020/04/25 Python
Django ORM filter() 的运用详解
2020/05/14 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
耐克中国官方商城:Nike中国
2018/10/18 全球购物
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
2015年社区教育工作总结
2015/05/13 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
2016年国培研修日志
2015/11/13 职场文书
15个值得收藏的JavaScript函数
2021/09/15 Javascript