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


Posted in Javascript onNovember 01, 2020

本文实例为大家分享了微信小程序实现星星评分的具体代码,供大家参考,具体内容如下

思路很简单,小星星都是一张张独立的图片,点击的时候改变图片的路径就可以了。
我是用背景图片做的,先给盒子设置背景图片为灰色的小星星,盒子是根据js文件中的stars数组循环出来的,根据flag的值确定是灰色的小星星还是黄色的小星星,点击的时候获取当下这个盒子的index值,然后去更改stars数组中索引值小于等于index的每一项的flag就可以了。
当然,也可以用类名来控制灰色和黄色的小星星,在点击的时候操作类名也是可以实现的。

实现代码如下:

*.wxml文件
<view class="container">
 <view class='stars'>
 <image src=''></image>
 <view class='content'>
 <view>评分</view>
 <view>
 <view wx:for="{{stars}}" wx:key="" style='background:url("{{item.flag==1?item.bgImg:item.bgfImg}}") no-repeat top; background-size:100%;' data-index="{{index}}" bindtap='score'></view>
 </view>
 </view>
 </view>
 <view class='reviews'>
 <textarea placeholder='请写下购买体会或商品的相关信息,可以拉其他小伙伴提供参考~(评价在100字以内)'></textarea>
 </view>
</view>
*.wxss文件
.stars{
 padding:85rpx 0 60rpx 273rpx;
 box-sizing: border-box;
 position: relative;
 border-bottom: 1rpx solid #ececec;
 background-color: #fff;
}
.stars image{
 width: 190rpx;
 height: 190rpx;
 border: 1rpx solid #000;
 position: absolute;
 top: 41rpx;
 left: 36rpx;
}
.stars .content view{
 font-size: 32rpx;
 color: #4a4a4a;
}
.stars .content>view:last-of-type{
 height: 40rpx;
 margin-top: 48rpx;
}
.stars .content>view:last-of-type view{
 float: left;
 width: 42rpx;
 height: 42rpx;
 margin-right: 25rpx;
 background-size: 100% 100%;
}
*.js文件
 data: {
 stars:[
 {
 flag:1,
 bgImg: "/star.png",
 bgfImg:"/f_star.png"
 },
 {
 flag: 1,
 bgImg: "/star.png",
 bgfImg: "/f_star.png"
 },
 {
 flag: 1,
 bgImg: "/star.png",
 bgfImg: "/f_star.png"
 },
 {
 flag: 1,
 bgImg: "/star.png",
 bgfImg: "/f_star.png"
 },
 {
 flag: 1,
 bgImg: "/star.png",
 bgfImg: "/f_star.png"
 }
 ]
 },
 score:function(e){
 var that=this;
 for(var i=0;i<that.data.stars.length;i++){
 var allItem = 'stars['+i+'].flag';
 that.setData({
 [allItem]: 1
 })
 }
 var index=e.currentTarget.dataset.index;
 for(var i=0;i<=index;i++){
 var item = 'stars['+i+'].flag';
 that.setData({
 [item]:2
 })
 }
 },

代码分析:

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

效果图:

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery EasyUI API 中文文档 可调整尺寸
Sep 29 Javascript
bootstrap table 服务器端分页例子分享
Feb 10 Javascript
JavaScript中逗号运算符介绍及使用示例
Mar 13 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
Jul 22 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
Apr 04 Javascript
jQuery实现手势解锁密码特效
Aug 14 jQuery
[js高手之路]HTML标签解释成DOM节点的实现方法
Aug 31 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
Apr 04 Javascript
基于Vue 撸一个指令实现拖拽功能
Oct 09 Javascript
vue实现路由懒加载的3种方法示例
Sep 01 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
Oct 28 Javascript
Vue3.0中Ref与Reactive的区别示例详析
Jul 07 Vue.js
Express 配置HTML页面访问的实现
Nov 01 #Javascript
ant design vue 表格table 默认勾选几项的操作
Oct 31 #Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
Oct 31 #Javascript
Ant design vue中的联动选择取消操作
Oct 31 #Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
Oct 31 #Javascript
vue中可编辑树状表格的实现代码
Oct 31 #Javascript
Ant Design Pro 之 ProTable使用操作
Oct 31 #Javascript
You might like
smarty基础之拼接字符串的详解
2013/06/18 PHP
调整PHP的性能
2013/10/30 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
Javascript实现检测客户端类型代码封包
2015/12/03 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
javascript如何创建对象
2016/08/29 Javascript
NodeJS整合银联网关支付(DEMO)
2016/11/09 NodeJs
JS中Safari浏览器中的Date
2017/07/17 Javascript
bootstrap table表格客户端分页实例
2017/08/07 Javascript
JavaScript学习笔记之函数记忆
2017/09/06 Javascript
结合mint-ui移动端下拉加载实践方法总结
2017/11/08 Javascript
React中嵌套组件与被嵌套组件的通信过程
2018/07/11 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
Python功能点实现:函数级/代码块级计时器
2019/01/02 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
django前端页面下拉选择框默认值设置方式
2020/08/09 Python
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
canvas实现按住鼠标移动绘制出轨迹的示例代码
2018/02/05 HTML / CSS
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
工作说明书范文
2014/05/07 职场文书
上班迟到检讨书范文300字
2014/11/02 职场文书
内勤岗位职责
2015/02/10 职场文书
如何解决.cuda()加载用时很长的问题
2021/05/24 Python
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python