Ich möchte einen Diktiergerät erstellen, aber der erste Schritt besteht darin, bei der Mikrofon-Animation
Laden Sie zuerst das GIF erneut hoch.
① Die Schallwelle im GIF oben Die Animation ist ein halbfertiges Produkt. Es gibt keine
Wiedergabe. Ich habe lange in der Entwicklungsdokumentation des WeChat Applet, konnte aber die Parametereinstellung des Schleifenmodus nicht finden. Ich habe diese Zeile unten in der WeChat-Applet-Dokumentanimation gefunden rausgeworfen werden?ps: Wenn Schüler eine Animationsschleife realisieren können, sagen Sie es mir bitte.
② Es gibt eine Rahmenanimation im Inneren des Mikrofons, die wir nur erstellen können mit Nicht-Mainstream-Methoden tun.
Verwenden Sie wx:if{{}}, um zu bestimmen, ob der in js
definierte Wert gleich ist Die dem Bild entsprechende Nummer zum Steuern der Anzeige und des Ausblendens des Bildes. Meine CSS-Grundlage ist nicht stark.Laden Sie den Code hoch1. index.wxml
<!--index.wxml--> <view class="voice-style" bindtap="startSpeak"> <image class="bg-style" src="../../images/voice_icon_speaking_bg_normal.png" ></image> <image class="bg-style" animation="{{spreakingAnimation}}" src="../../images/voice_video_loading_0.png"></image> <image class="bg-style" animation="{{spreakingAnimation_1}}" src="../../images/voice_video_loading_0.png"></image> <image class="bg-style" animation="{{spreakingAnimation_2}}" src="../../images/voice_video_loading_0.png"></image> <image class="sound-style" src="../../images/voice_icon_speech_sound_1.png" ></image> <image wx:if="{{j==2}}" class="sound-style" src="../../images/voice_icon_speech_sound_2.png" ></image> <image wx:if="{{j==3}}" class="sound-style" src="../../images/voice_icon_speech_sound_3.png" ></image> <image wx:if="{{j==4}}" class="sound-style" src="../../images/voice_icon_speech_sound_4.png" ></image> <image wx:if="{{j==5}}"class="sound-style" src="../../images/voice_icon_speech_sound_5.png" ></image> </view>
//index.js //获取应用实例 var app = getApp() Page({ data: { spreakingAnimation: {},//放大动画 j: 1,//帧动画初始图片 isSpeaking: false,//是否在录音状态 }, onLoad: function () { }, //点击开始说话 startSpeak: function () { var _this = this; if (!this.data.isSpeaking) { speaking.call(this); this.setData({ isSpeaking: true }) } else { //去除帧动画循环 clearInterval(this.timer) this.setData({ isSpeaking: false, j: 1 }) } }, }) function speaking() { //话筒帧动画 var i = 1; this.timer = setInterval(function () { i++; i = i % 5; _this.setData({ j: i }) return }, 200); //波纹放大,淡出动画 var _this = this; var animation = wx.createAnimation({ duration: 1000 }) animation.opacity(0).scale(3, 3).step();//修改透明度,放大 this.setData({ spreakingAnimation: animation.export() }) setTimeout(function(){ //波纹放大,淡出动画 var animation = wx.createAnimation({ duration: 1000 }) animation.opacity(0).scale(3, 3).step();//修改透明度,放大 _this.setData({ spreakingAnimation_1: animation.export() }) },250) setTimeout(function(){ //波纹放大,淡出动画 var animation = wx.createAnimation({ duration: 1000 }) animation.opacity(0).scale(3, 3).step();//修改透明度,放大 _this.setData({ spreakingAnimation_2: animation.export() }) },500) }
Das obige ist der detaillierte Inhalt vonMiniprogrammentwicklung von Mikrofonanimationseffektcode zum Vergrößern und Verkleinern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!