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


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 相关文章推荐
自己写的Javascript计算时间差函数
Oct 28 Javascript
js弹窗返回值详解(window.open方式)
Jan 11 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
Nov 25 Javascript
JS组件Bootstrap Table布局详解
May 27 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
Jul 09 Javascript
基于JavaScript 性能优化技巧心得(分享)
Dec 11 Javascript
Vue的路由动态重定向和导航守卫实例
Mar 17 Javascript
详解JSON和JSONP劫持以及解决方法
Mar 08 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
Jul 27 Javascript
微信小程序登陆注册功能的实现代码
Dec 10 Javascript
详解Webpack抽离第三方类库以及common解决方案
Mar 30 Javascript
jQuery插件实现图片轮播效果
Oct 19 jQuery
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
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
php发送邮件的问题详解
2015/06/22 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
PHP MVC框架中类的自动加载机制实例分析
2019/09/18 PHP
ECMAScript 创建自己的js类库
2012/11/22 Javascript
jQuery回车实现登录简单实现
2013/08/20 Javascript
JS保留两位小数 四舍五入函数的小例子
2013/11/20 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
jQuery使用$.ajax提交表单完整实例
2015/12/11 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
Vue 2.0 服务端渲染入门介绍
2017/03/29 Javascript
Vue关于数据绑定出错解决办法
2017/05/15 Javascript
Angular4编程之表单响应功能示例
2017/12/13 Javascript
Javascript中从学习bind到实现bind的过程
2018/01/05 Javascript
layui中使用jquery控制radio选中事件的示例代码
2018/08/15 jQuery
vue的全局变量和全局拦截请求器的示例代码
2018/09/13 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
《与孩子一起学编程》python自测题
2018/05/27 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
Python依赖包整体迁移方法详解
2019/08/15 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
what is the difference between ext2 and ext3
2013/11/03 面试题
汽车技术服务与贸易专业求职信
2014/07/20 职场文书
办理房产证委托书
2014/09/18 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书
详解MySQL的半同步
2021/04/22 MySQL
tensorflow中的数据类型dtype用法说明
2021/05/26 Python