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


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 相关文章推荐
input+select(multiple) 实现下拉框输入值
May 21 Javascript
jQuery中$.extend()用法实例
Jun 24 Javascript
简单的jQuery入门指引
Jul 28 Javascript
Javascript实现网络监测的方法
Jul 31 Javascript
JavaScript必知必会(十) call apply bind的用法说明
Jun 08 Javascript
基于jQuery实现的查看全文功能【实用】
Dec 11 Javascript
详解vue slot插槽的使用方法
Jun 13 Javascript
浅谈Vue2.0父子组件间事件派发机制
Jan 08 Javascript
理解Koa2中的async&amp;await的用法
Feb 05 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
Mar 02 Javascript
vue-router的钩子函数用法实例分析
Oct 26 Javascript
vue 函数调用加括号与不加括号的区别
Oct 29 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
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
php配置php-fpm启动参数及配置详解
2013/11/04 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
PHP反射学习入门示例
2019/06/14 PHP
PHP数组实际占用内存大小原理解析
2020/12/11 PHP
alixixi runcode.asp的代码不错的应用
2007/08/08 Javascript
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
基于JQuery的Pager分页器实现代码
2010/07/17 Javascript
javascript中style.left和offsetLeft的用法说明
2014/03/07 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
2017/05/03 Javascript
详解微信第三方小程序代开发
2017/06/23 Javascript
vue 项目常用加载器及配置详解
2018/01/22 Javascript
原生JS实现的双色球功能示例
2018/02/02 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
vue动画打包后失效问题的解决方法
2018/09/18 Javascript
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
详解python中init方法和随机数方法
2019/03/13 Python
Python将json文件写入ES数据库的方法
2019/04/10 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
Python函数的默认参数设计示例详解
2019/12/01 Python
python文件路径操作方法总结
2020/12/21 Python
eBay比利时购物网站:eBay.be
2019/08/09 全球购物
信息专业大学生自我评价分享
2014/01/17 职场文书
幼儿园教师的考核评语
2014/04/18 职场文书
《春雨》教学反思
2014/04/24 职场文书
公共场所禁烟倡议书
2014/08/30 职场文书
医德医风自我评价
2014/09/19 职场文书
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers