微信小程序——星星评分
先来个效果图镇楼:
实现原理:
1.循环需要评分的列表,判断它的分数 与 当前星星索引的大小;
2.点击,获取星星对应的分数,让星星高亮。
代码:
star.wxml:
<view class="weui-cells {{!margin ? 'weui-cells__mt0' : ''}}">
<view class='weui-cell' wx:for="{{subjectStarList}}" wx:key="id" wx:for-item="subjectStar" wx:for-index="subIdx">
<view class='weui-cell__bd'>
{{subjectStar.name}}
</view>
<view class='weui-cell__ft'>
<view class='score-list'>
<ss-icon wx:for="{{stars}}" wx:for-item="stars" name="star-full" custom-class=" score-item {{subjectStar.score > index ? 'active' : ''}} " data-sub-idx="{{subIdx}}" data-score="{{stars}}" bind:click="grade"></ss-icon>
</view>
</view>
</view>
</view>
上面的ss-icon 是我自定义的一个组件,点击查看。
主要代码说明:
{{subjectStar.score > index ? 'active' : ''}} —— 当前的分数如果大于当前星星的索引,就给它添加 active 样式,就是让它变成高亮黄色;
data-sub-idx="{{subIdx}}" —— 获取你当前点击的是第几项
data-score="{{stars}}" —— 当前你的星星对应的是几分
star.js:
// components/star/index.js
Component({
options: {
addGlobalClass: true,
}, /**
* 组件的初始数据
*/
data: {
subjectStarList: [{
id: 1,
name: '学校表现',
score: 1
}, {
id: 2,
name: '作业完成情况',
score: 4
}, {
id: 3,
name: '爱护同学',
score: 0
}],
stars: [1, 2, 3, 4, 5]
},/**
* 组件的方法列表
*/
methods: {
grade: function(e) {
let that = this;
let score = e.currentTarget.dataset.score;
let subIdx = e.currentTarget.dataset.subIdx;
let subScore = `subjectStarList[${subIdx}].score`;
//只有一颗星的时候,再次点击,变为0颗
if (that.data.subjectStarList[subIdx].score == 1 && score == 1) {
score = 0;
}
that.setData({
[subScore]: score,
});
},
}
})
注意!!我是把这个评分功能做成的一个组件形式,所以js 文件里面主要是组件写法。这里主要介绍一下它的原理~
微信小程序——星星评分的更多相关文章
- 微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示
一.前言 项目中遇到的评分相关的需求其实还挺多.之前也写过网页中关于评分功能实现的文档.这次,是基于微信小程序开发而提炼出一个简单方便使用的方法,网页开发中同样可用.这次使用的还是字体,主要是字体这个 ...
- 微信小程序之评分页面
首先给大家看看做好的效果图: 一.接下来我们说一下评分这个功能: 实际上就是一个简单的js,首先我们遍历出小星星,此时默认给的五星好评,在给他们一个点击事件,当点击时,我们获取到当前点击的是第几颗:代 ...
- 微信小程序 - 五星评分(含半分)
转载自:http://blog.csdn.net/column/details/13721.html 演示: 下载:小程序-星级评论.zip
- 微信小程序星星评价
https://www.jianshu.com/p/4d7359dfa040
- 微信小程序滚动动画,点击事件及评分星星制作!
前言 小程序上线刷爆了朋友圈,但是最近渐渐消沉了,很少有动静!最近公司项目需要,体验了一下微信小程序,制作了几个功能,布局感觉很简单,但是交互和动画等写起来确实很费劲,主要是因为他不能操作DOM,只能 ...
- 边做边学入门微信小程序之仿豆瓣评分
微信小程序由于适用性强.逻辑简要.开发迅速的特性,叠加具有海量活跃用户的腾讯公司背景,逐渐成为了轻量级单一功能应用场景的较佳承载方式,诸如电影购票.外卖点餐.移动商城.生活服务等场景服务提供商迅速切入 ...
- 微信小程序开发 [06] 一些补充的知识点
0.写在前面的话 前几章的内容串联起来,基本上已经能写比较基础的小程序页面逻辑了,当然,wxml和wxss的我并没有写,因为前端我也并不擅长.这个章节,准备随便叨叨,然后补充一些之前没有提到的基础知识 ...
- 微信小程序学习指南
作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- python flask框架学习(三)——豆瓣微信小程序案例(一)templates的使用,宏的使用,前端后台传数据,前端写python语句
目录 一.templates的使用 (1)在templates里创建一个index.html (2)再在app.py里写 (3)展示效果 二.构建第一个电影评分 (1)准备好素材放进static里的i ...
随机推荐
- python 并发编程(socketserver)
下面的例子是简单的ssh 登录,其实也就是客户端把指令发送给服务器.服务器把结果返还给客户端,客户端再在终端展现 服务端代码: #Author:BigBao #Date:2018/7/18 # 我们之 ...
- centos7 安装后需要做的事情
安装centos 7 系统之后要做的几件事 #修改主机名 hostnamectl --static set-hostname xd-1 vim /etc/hosts127.0.0.1 xd-1x.x. ...
- 关于 NSInvocation
Invocation 调用的意思. 可想而知NSInvocation 是一个 方法调用 封装的类. 这体现了 面向对象的思想, 及一切皆对象.函数也不例外. 一般编程中,应该很少用到这个. 但是 ...
- Android App开发技能图谱(转载)
操作系统 Windows/MacOSX/Linux 编程语言 Java HTML/JS (Hybrid/Web App) C/C++ (NDK) SQL (DB) Kotlin 开发工具 IDE An ...
- 看了一下unity5.6的新功能 以及Timeline
3月31日unity5.6发布,然而timeline(前sequence模块)被delay到unity 2017.上个星期官方又发布了unity 2017的beta版本 抽空看了下 (unity5.6 ...
- django搭建一个小型的服务器运维网站-拿来即用的bootstrap模板
目录 项目介绍和源码: 拿来即用的bootstrap模板: 服务器SSH服务配置与python中paramiko的使用: 用户登陆与session; 最简单的实践之修改服务器时间: 查看和修改服务器配 ...
- JavaWEB springmvc 使用定时任务
1.配置web.xml 在web.xml配置使用springmvc框架,其他配置略. <display-name>xxx.com</display-name> <!-- ...
- ksoap2调用webservice传递参数丢失
参数有顺序要求,顺序设置正确即可.
- spark读取hdfs数据本地性异常【转】
在分布式计算中,为了提高计算速度,数据本地性是其中重要的一环. 不过有时候它同样也会带来一些问题. 一.问题描述 在分布式计算中,大多数情况下要做到移动计算而非移动数据,所以数据本地性尤其重要,因此我 ...
- 10款jQuery图片左右滚动插件
在现代的网页设计中,图片和内容滑块是一种极为常见和重要的元素.你可以从头开始编写自己的滑动效果,但是这将浪费很多时间,因为网络上已经有众多的优秀的 jQuery 滑块插件.当然,如果要从大量的 jQu ...