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

作者:Stevin的技术博客 时间:2023-08-24 10:04:45 

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

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

代码实现

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;
}

来源:https://blog.csdn.net/feng2qing/article/details/79366249

标签:微信小程序,星星评价
0
投稿

猜你喜欢

  • Go语言中的range用法实例分析

    2024-04-30 10:03:18
  • iis、apache与nginx禁止目录执行asp、php脚本的实现方法

    2023-10-14 11:30:26
  • 详解python里的命名规范

    2023-02-11 20:07:02
  • numpy工程实践之np.savetxt()存储数据

    2023-06-19 07:33:11
  • Js中var,let,const的区别你知道吗

    2024-05-09 15:07:50
  • python实现MD5进行文件去重的示例代码

    2021-12-13 02:28:23
  • python3音乐播放器简单实现代码

    2022-06-12 04:43:14
  • 详解MySQL性能优化(二)

    2024-01-23 13:10:47
  • ASP-server.URLEncode反函数:urldecode

    2008-10-23 16:05:00
  • Python常用图像形态学操作详解

    2023-07-27 18:14:51
  • 变态输入框——再谈校验包容性(一)

    2009-10-10 13:23:00
  • 一步步教你MySQL查询优化分析教程

    2024-01-27 09:56:23
  • Python 移动光标位置的方法

    2023-09-07 03:15:25
  • 使用python进行拆分大文件的方法

    2022-06-23 17:54:04
  • python实现根据主机名字获得所有ip地址的方法

    2021-03-13 14:19:25
  • 使用bandit对目标python代码进行安全函数扫描的案例分析

    2021-04-07 02:01:22
  • 框架布局慎用元素

    2008-12-21 16:33:00
  • Python中Selenium模拟JQuery滑动解锁实例

    2021-10-21 09:49:52
  • python计算质数的6种方法

    2023-11-06 10:22:27
  • python实用代码片段收集贴

    2022-02-16 10:01:40
  • asp之家 网络编程 m.aspxhome.com