Rumah >applet WeChat >Pembangunan program mini >Perbincangan ringkas tentang cara melaksanakan fungsi 'penilaian lima bintang' dalam program mini (menyokong klik dan gelongsor)
Artikel ini akan memperkenalkan kepada anda cara melaksanakan fungsi "penilaian lima bintang" program mini, yang menyokong penilaian klik dan gelongsor.
Keperluan lengkap:
[Cadangan pembelajaran berkaitan: Tutorial Pembangunan Program Mini]
2. 🎜>
/*wxss 一行内展示五颗星并设置其间距为30rpx*/ .scoreContent {display: inline-block;} .starLen {margin-right: 30rpx;display: inline-block;} .scoreContent .starLen:last-child {margin-right: 0;} .star {width: 80rpx;height: 80rpx;vertical-align: text-bottom;display: inline-block;}
/*wxml 每个starLen元素上绑定 touchMove touchEnd tap事件*/ <view class="scoreContent" id="scoreContent"> <block wx:for='{{5}}' wx:key='item'> <!-- 遍历评分列表 --> <view class='starLen' catchtouchmove='changeScore' catchtouchend="changeScoreEnd" catchtap='setScore' data-index="{{index}}"> <!-- 使用三目运算符来动态变化显示的是哪张图片,score是js中的分数,index是scoreArray的下标 --> <image class='star' src="{{score>index?(score>index+0.5?fullStarUrl:halfStarUrl):nullStarUrl}}" /> </view> </block> </view>
//取 score与index下标做比较,默认score为0 score<index 展示nullStar.png score>index+0.5 展示fullStar.png index<score<=index+0.5 展示halfStar.png
/** * 组件的初始数据 */ data: { fullStarUrl: '/images/full.png', //满星图片 halfStarUrl: '/images/half.png', //半星图片 nullStarUrl: '/images/null.png', //空星图片 score: 0, //评价分数 rate: 2, //设计稿宽度÷屏幕实际宽度 startX: 0, //第一颗星screenX的距离 },
//设定比率rate与第一颗星screenX 组件初始化attached 或者 页面初始化onShow attached: function () { // 在组件实例进入页面节点树时执行 let { screenWidth } = wx.getSystemInfoSync(); let rate = screenWidth / 750; this.setData({ rate: rate }) const query = this.createSelectorQuery(); query.select('#scoreContent').boundingClientRect((res)=> { this.setData({ startX: res.left }) }).exec() },
Penilaian gelongsor (bahagian utama)
setScore(e) { //e.currentTarget.dataset.index 为当前的item的下标 let score = e.currentTarget.dataset.index + 1;//实际的score if (score - this.data.score == 0.5) {//当前半星与整星的切换 this.setData({ score: score }) } else {//点击其他星设置的分数 this.setData({ score: score - 0.5 }) } },Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati:
Atas ialah kandungan terperinci Perbincangan ringkas tentang cara melaksanakan fungsi 'penilaian lima bintang' dalam program mini (menyokong klik dan gelongsor). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!