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


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点击弹出下拉菜单效果实例
Aug 12 Javascript
showModalDialog模态对话框的使用详解以及浏览器兼容
Jan 11 Javascript
JavaScript实现动态创建CSS样式规则方案
Sep 06 Javascript
Javascript中的return作用及javascript return关键字用法详解
Nov 05 Javascript
JS实现的倒计时效果实例(2则实例)
Dec 23 Javascript
基于JavaScript实现Tab选项卡切换效果
Nov 24 Javascript
微信小程序 特效菜单抽屉效果实例代码
Jan 11 Javascript
基于vue.js中事件修饰符.self的用法(详解)
Feb 23 Javascript
安装Node.js并启动本地服务的操作教程
May 12 Javascript
Vue的路由及路由钩子函数的实现
Jul 02 Javascript
详解Vue之事件处理
Jul 10 Javascript
vue封装数字翻牌器
Apr 20 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
怎样在PHP中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
数据库中排序的对比及使用条件详解
2012/02/23 PHP
PHP判断浏览器、判断语言代码分享
2015/03/05 PHP
laravel 多图上传及图片的存储例子
2019/10/14 PHP
国外Lightbox v2.03.3 最新版 下载
2007/10/17 Javascript
JavaScript小技巧 2.5 则
2010/09/12 Javascript
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
JavaScript基本编码模式小结
2012/05/23 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
2016/05/24 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
微信小程序实现form表单本地储存数据
2019/06/27 Javascript
在layui下对元素进行事件绑定的实例
2019/09/06 Javascript
Python Socket传输文件示例
2017/01/16 Python
使用Python对MySQL数据操作
2017/04/06 Python
详解Python函数可变参数定义及其参数传递方式
2017/08/02 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
2020/06/02 Python
Under Armour瑞典官方网站:美国高端运动科技品牌
2018/11/21 全球购物
全球工业:Global Industrial
2020/02/01 全球购物
javascript实现用户必须勾选协议实例讲解
2021/03/24 Javascript
中学生运动会口号
2014/06/07 职场文书
励志演讲稿300字
2014/08/21 职场文书
经典演讲稿开场白
2014/08/25 职场文书
2014年妇幼保健工作总结
2014/12/08 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
Pytest中skip和skipif的具体使用方法
2021/06/30 Python
SQL实现LeetCode(177.第N高薪水)
2021/08/04 MySQL
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技