search
HomeWeChat AppletMini Program DevelopmentMini program development of microphone animation effect code for zooming in and out

I want to make a voice recorder, but the first step is to get stuck on the microphone animation .

First upload the gif. Complain again.

Mini program development of microphone animation effect code for zooming in and out

##① The sound wave in the above gif The animation is a semi-finished product. There is no loop playback. I searched for a long time in the development documentation of the WeChat applet, but could not find the parameter setting of the loop mode. Use setInterval () does not execute the animation. I found this line at the bottom of WeChat Mini Program Document Animation. Can this pot be thrown out?

ps: If any students can realize animation loop, please tell me.

Mini program development of microphone animation effect code for zooming in and out

##② There is a frame animation inside the microphone. Without front-end foundation, I can only make do with non-mainstream methods.

Use wx:if{{}} to determine whether the value defined in js is equal to the number corresponding to the image to control the display and hiding of the image. There should be a better method in css. My css foundation is not strong. I won’t go into details.

Code

1. index.w
xml

<!--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>

2. index .js

//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)  
}


3. index.

wxss

/**index.wxss**/  
.voice-style {  
  margin-top: 400px;  
  display: flex;  
  position: relative;  
  flex-direction: column;  
  align-items: center;  
}  
  
.bg-style {  
  position: absolute;  
  width: 100px;  
  height: 100px;  
}  
.sound-style{  
  position: absolute;  
  width: 37.6px;  
  height: 60px;  
  margin-top: 20px;  
}

The above is the detailed content of Mini program development of microphone animation effect code for zooming in and out. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor