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


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 相关文章推荐
Extjs列表详细信息窗口新建后自动加载解决方法
Apr 02 Javascript
JS的replace方法介绍
Oct 20 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
Jan 03 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
Oct 29 Javascript
node.js中的fs.readlink方法使用说明
Dec 17 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
Jun 14 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
Aug 17 Javascript
利用Console来Debug的10个高级技巧汇总
Mar 26 Javascript
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
May 31 jQuery
微信小程序WebSocket实现聊天对话功能
Jul 06 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
Sep 29 Javascript
JavaScript中this的学习笔记及用法整理
Feb 17 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
多人战的战术与战略
2020/03/04 星际争霸
一个PHP二维数组排序的函数分享
2014/01/17 PHP
php备份数据库类分享
2015/04/14 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
2019/03/22 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
2020/07/24 PHP
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
使用js Math.random()函数生成n到m间的随机数字
2014/10/09 Javascript
Javascript之String对象详解
2016/06/08 Javascript
Node.js复制文件的方法示例
2016/12/29 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
2019/09/11 Javascript
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
python3.x实现发送邮件功能
2018/05/22 Python
python实现任意位置文件分割的实例
2018/12/14 Python
Python lambda表达式用法实例分析
2018/12/25 Python
python从子线程中获得返回值的方法
2019/01/30 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
2019/06/04 Python
python pip源配置,pip配置文件存放位置的方法
2019/07/12 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
CSS3实现银灰色动画效果的导航菜单代码
2015/09/01 HTML / CSS
html5+css如何实现中间大两头小的轮播效果
2018/12/06 HTML / CSS
extern是什么意思
2016/03/10 面试题
参观监狱心得体会
2014/01/02 职场文书
连带责任保证书
2014/04/29 职场文书
机械专业应届毕业生自荐书
2014/06/12 职场文书
董事长秘书工作总结
2015/08/14 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
css实现左上角飘带效果的完整代码
2022/03/18 HTML / CSS
CSS 实现角标效果的完整代码
2022/06/28 HTML / CSS