<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了微信小程式實現五星評價的具體程式碼,供大家參考,具體內容如下
需求如圖:
1個星-很不滿意;
2個星-不滿意;
3個星-一般;
4個星-還不錯;
5個星-很滿意;
找了demo,刪刪改改,demo地址:微信小程式實現星星評價效果
需要的頁面引入:
json:
{ "usingComponents": { "star": "../../components/star/star" }, "navigationBarTitleText": "評價" }
wxml:
<star></star>
元件程式碼:
wxml:
<!--components/star/star.wxml--> <view class='buy' bindtap='showBuyModal'>測試版評價本次維修服務</view> <!-- 點選彈出遮罩層 --> <view class="cover_screen" bindtap="hideBuyModal" wx:if="{{showModalStatus}}"></view> <!-- 點選立即購買 彈窗 --> <view animation="{{animationData}}" class="buy_box" wx:if="{{showModalStatus}}"> <view class='startitle'>{{tatle}}</view> <!-- 星星start --> <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'>{{staritem}}</view> <!--星星評價 --> <view class='evaluate_box'> <!--內層迴圈展示每個評價條目的星星 --> <block wx:for="{{stars}}" wx:key=''> <image class="star-image" style="left: {{item*80}}rpx" src="{{scores[idx] > item ?normalSrc:selectedSrc}}"> <view class="staritem" data-score="{{item + 1}}" data-idx='{{idx}}' bindtap="selectRight"></view> </image> </block> </view> </view> </block> <view class="evaluation">{{evaluation}}</view> <!-- <button class='sub_button' bindtap='submit_evaluate' type='primary'>提交</button> --> </view> </view> <!-- 星星end --> <view class="detail-btn"> <button class="done-person" style='border:4rpx solid #FF4A4A;background-color: #FFFFFF;font-weight: bold;color: #FF4A4A;font-size:28rpx;' bindtap='hideBuyModal' plain='{{plain}}'>取消</button> <button class="done-person" style='border:none;background-color: #FF4A4A;font-weight: bold;color: #FFFFFF;font-size:28rpx;' bindtap='submit_evaluate' plain='{{plain}}'>提交</button> <!-- <button type="primary" bindtap='hideBuyModal' class=""> 取消</button> <button type="primary" bindtap='submit_evaluate' class=""> 確定 </button> --> </view> </view>
js:
// components/star/star.js Component({ /** * 元件的屬性列表 */ properties: { }, /** * 元件的初始資料 */ data: { showModalStatus: false, tatle: "您對這次服務的評價", // 星星 evaluate_contant: ['一', ], stars: [0, 1, 2, 3, 4], normalSrc: '../../image/star_gray.png', selectedSrc: '../../image/star_red.png', score: 0, scores: [0], evaluation:' ', plain:true }, /** * 元件的方法列表 */ methods: { // 星星顆數start // 提交事件 submit_evaluate: function() { console.log('評價得分' + this.data.scores) }, //點選星 selectRight: function(e) { var score = e.currentTarget.dataset.score console.log(score) this.data.scores[e.currentTarget.dataset.idx] = score let evaluation = score == 1 ? '很不滿意' : (score == 2 ? '不滿意' : (score == 3 ? '一般' : (score == 4 ? '還不錯' : (score == 5 ? '很滿意' : '')))) this.setData({ scores: this.data.scores, score: score, evaluation: evaluation }) }, // 星星顆數end // onLoad: function (options) { // console.log(options.id) // }, showBuyModal() { // 顯示遮罩層 var animation = wx.createAnimation({ duration: 200, /** * http://cubic-bezier.com/ * linear 動畫一直較為均勻 * ease 從勻速到加速在到勻速 * ease-in 緩慢到勻速 * ease-in-out 從緩慢到勻速再到緩慢 * * http://www.tuicool.com/articles/neqMVr * step-start 動畫一開始就跳到 100% 直到動畫持續時間結束 一閃而過 * step-end 保持 0% 的樣式直到動畫持續時間結束 一閃而過 */ timingFunction: "ease", delay: 0 }) this.animation = animation animation.translateY(300).step() this.setData({ animationData: animation.export(), // export 方法每次呼叫後會清掉之前的動畫操作。 showModalStatus: true }) setTimeout(() => { animation.translateY(0).step() this.setData({ animationData: animation.export() // export 方法每次呼叫後會清掉之前的動畫操作。 }) }, 200) }, hideBuyModal() { // 隱藏遮罩層 var animation = wx.createAnimation({ duration: 200, timingFunction: "ease", delay: 0 }) this.animation = animation animation.translateY(300).step() this.setData({ animationData: animation.export(), }) setTimeout(function() { animation.translateY(0).step() this.setData({ animationData: animation.export(), showModalStatus: false }) // console.log(this) }.bind(this), 200) } } })
wxss:
/* components/star/star.wxss */ .buy{ margin-top: 200rpx; text-align: center; } .cover_screen { width: 100%; height: 100%; position: fixed; top: 0; left: 0; background: #000; opacity: 0.2; overflow: hidden; z-index: 1000; color: #fff; } .buy_box { width: 100%; box-sizing: border-box; position: fixed; bottom: 0; left: 0; z-index: 2000; background: #fff; padding: 20rpx; overflow: hidden; } .buy_box .startitle { font-size: 28rpx; text-align: center; line-height: 40rpx; color: #333; padding: 20rpx 0; } /* 星星 */ .footer_end{ display: flex } .footer_end button{ width: 30%; } /* 插入星星 */ /*評價區域 */ .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: "../../image/star_gray.png"; } /* 評價對應內容 */ .evaluation{ text-align: center; margin: 30rpx 0 40rpx; color: #535353; } /*星星區域 */ .container .evaluate_contant .evaluate_item .evaluate_box .star-image .staritem { position: absolute; top: 0rpx; left: 0rpx; width: 40rpx; height: 40rpx; } /*按鈕 */ .container .evaluate_contant .sub_button { height: 60rpx; font-size: 30rpx; line-height: 60rpx; margin: 20rpx; } .detail-btn{ width: 750rpx; display: flex; justify-content: space-around; align-items: center; margin-bottom: 100rpx; } .done-person{ width:220rpx; height:72rpx; border-radius:36rpx; }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45