您好,登錄后才能下訂單哦!
這篇文章主要介紹“微信小程序音頻錄制波紋循環動畫怎么實現”,在日常操作中,相信很多人在微信小程序音頻錄制波紋循環動畫怎么實現問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”微信小程序音頻錄制波紋循環動畫怎么實現”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
實現的效果
第一種方法(利用微信小程序的animation)
wxml部分
<!--pages/myRecode/myRecode.wxml--> <view class="myRecode"> <view class="recode" bindtouchstart='recodeClick' bindtouchend='recodeEnd'> <text>長按</text> <view class="ripple"></view> <view class="ripple" animation="{{animationData1}}"></view> <view class="ripple" animation="{{animationData2}}"></view> </view> </view>
wxss部分
/* pages/myRecode/myRecode.wxss */ .myRecode{ padding-top:500rpx; text-align: center; box-sizing: border-box; } .myRecode .recode{ display: inline-block; width:200rpx; height:200rpx; background: #EBB128; border-radius: 50%; text-align: center; color:#fff; line-height: 200rpx; position: relative; } .ripple{ position: absolute; top:0; left:0; right:0; bottom:0; border-radius: 50%; border:2px solid #F6F1CC; }
js 部分
// pages/myRecode/myRecode.js Page({ /** * 頁面的初始數據 */ data: { animationData1: "", animationData2: "", animationStatus: false }, /** * 生命周期函數--監聽頁面加載 */ onLoad: function(options) { }, /** * 生命周期函數--監聽頁面初次渲染完成 */ onReady: function() { }, /** * 生命周期函數--監聽頁面顯示 */ onShow: function() { }, /** * 生命周期函數--監聽頁面隱藏 */ onHide: function() { }, /** * 生命周期函數--監聽頁面卸載 */ onUnload: function() { }, /** * 頁面相關事件處理函數--監聽用戶下拉動作 */ onPullDownRefresh: function() { }, /** * 頁面上拉觸底事件的處理函數 */ onReachBottom: function() { }, /** * 用戶點擊右上角分享 */ onShareAppMessage: function() { }, //事件函數 animationFun:function(animationData){ if(!this.data.animationStatus){ return } var animation = wx.createAnimation({ duration: 1000 }) animation.opacity(0).scale(2, 2).step(); this.setData({ [`${animationData}`]: animation.export() }) }, animationEnd: function (animationData) { var animation = wx.createAnimation({ duration: 0 }) animation.opacity(1).scale(1, 1).step(); this.setData({ [`${animationData}`]: animation.export() }) }, recodeEnd: function() { //動畫1結束 var animation1 = wx.createAnimation({ duration: 0 }) animation1.opacity(1).scale(1, 1).step(); //動畫2結束 var animation2 = wx.createAnimation({ duration: 0 }) animation2.opacity(1).scale(1, 1).step(); this.setData({ animationData1: animation1.export(), animationData2: animation2.export(), animationStatus: false }) }, recodeClick: function() { this.setData({ animationStatus: true }) this.animationFun('animationData1') setTimeout(()=>{ this.animationFun('animationData2') },500) setTimeout(() => { this.animationRest() }, 1000) }, animationRest: function() { //動畫重置 this.animationEnd('animationData1') setTimeout(()=>{ this.animationEnd('animationData2') },500) setTimeout(() => { if (this.data.animationStatus) { this.recodeClick() } }, 100) } })
第二種方法(純wxss控制)
wxml
<!--pages/myRecode/myRecode.wxml--> <view class="myRecode"> <view class="recode" bindtouchstart='recodeClick' bindtouchend='recodeEnd'> <text>長按</text> <view class="ripple"></view> <view class="ripple {{animationStatus?'rippleAnimation1':''}}"></view> <view class="ripple {{animationStatus?'rippleAnimation2':''}}"></view> <view class="ripple {{animationStatus?'rippleAnimation3':''}}"></view> </view> </view>
js
// pages/myRecode/myRecode.js Page({ /** * 頁面的初始數據 */ data: { animationStatus: false }, /** * 生命周期函數--監聽頁面加載 */ onLoad: function(options) { }, /** * 生命周期函數--監聽頁面初次渲染完成 */ onReady: function() { }, /** * 生命周期函數--監聽頁面顯示 */ onShow: function() { }, /** * 生命周期函數--監聽頁面隱藏 */ onHide: function() { }, /** * 生命周期函數--監聽頁面卸載 */ onUnload: function() { }, /** * 頁面相關事件處理函數--監聽用戶下拉動作 */ onPullDownRefresh: function() { }, /** * 頁面上拉觸底事件的處理函數 */ onReachBottom: function() { }, /** * 用戶點擊右上角分享 */ onShareAppMessage: function() { }, recodeEnd: function() { this.setData({ animationStatus:false }) }, recodeClick: function() { this.setData({ animationStatus: true }) } })
wxss部分
/* pages/myRecode/myRecode.wxss */ .myRecode{ padding-top:500rpx; text-align: center; box-sizing: border-box; } .myRecode .recode{ display: inline-block; width:200rpx; height:200rpx; background: #EBB128; border-radius: 50%; text-align: center; color:#fff; line-height: 200rpx; position: relative; } .ripple{ position: absolute; top:0; left:0; right:0; bottom:0; border-radius: 50%; border:2px solid #F6F1CC; } .rippleAnimation1{ animation: ripple 1s infinite linear; } .rippleAnimation2{ animation: ripple 1s infinite linear; animation-delay:0.3s; } .rippleAnimation3{ animation: ripple 1s infinite linear; animation-delay:0.6s; } @keyframes ripple{ from{ opacity: 1; transform: scale(1,1) } to{ opacity: 0; transform: scale(2,2) } }
到此,關于“微信小程序音頻錄制波紋循環動畫怎么實現”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。