css特效之旋转音乐播放器

Posted zouwangblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了css特效之旋转音乐播放器相关的知识,希望对你有一定的参考价值。

本次需要用到的知识点有:

  1. transform
  2. setInerval

怎么添加背景音乐我会在下一篇介绍  https://www.cnblogs.com/zouwangblog/p/11097564.html

使用场景:在移动端页面上方添加一个旋转的音乐图标,音乐暂停,停止旋转,音乐播放,继续旋转,这里使用的是vue。

原理:原理很简单,使用setInerval函数来让图片每100ms旋转一次,旋转用css中的transform方法,将旋转角度设置为全局变量,这样在暂停之后继续播放能接着上次的位置继续旋转

 

  <div>
      <audio :src="mus" class="media-audio" loop autoplay ref="MusicPlay"></audio>
      <img :src="musicLogo" class="musicLogo" @click="musicPause" :style="transform: musicRotate"/>   //音乐播放
      <img v-show="musicTF" :src="off" class="musicLogo" @click="musicPlay"/>                           //音乐暂停
    </div>

 

需要用到的变量

 musicTF: false,//是否显示禁止播放
 musicNum: 0,//初始旋转角度
 musicRotate: "rotate(" + 0 + "deg)",
 interval: null,//定时器

方法

    /**
       * 暂停音乐并停止旋转
       */
      musicPause() 
        this.$refs.MusicPlay.pause();
        this.musicTF = true;
        if (this.interval !== null) 
          clearInterval(this.interval);  //停止定时器
        
      ,

      /**
       * 播放音乐并开始旋转
       */
      musicPlay() 
        this.$refs.MusicPlay.play();
        this.musicTF = false
        this.countMusicNum();
      ,

      /**
       * 设置定时器旋转,这个是放在mouted方法中,需要页面一加载就旋转
       */
      countMusicNum() 
        let that = this;
        that.interval = setInterval(function () 
          that.musicNum = that.musicNum + 10;
          that.musicRotate = "rotate(" + that.musicNum + "deg)";
        , 100);
      ,

效果图

 技术图片      技术图片

 

以上是关于css特效之旋转音乐播放器的主要内容,如果未能解决你的问题,请参考以下文章

jQuery仿QQ音乐播放器

Android简易音乐重构MVVM Java版-解决播放界面旋转动画卡顿及播放异常崩溃问题(二十一)

Android简易音乐重构MVVM Java版-解决播放界面旋转动画卡顿及播放异常崩溃问题(二十一)

重点突破——Canvas技术制作音乐播放器

校内css背景音乐问题 我的涂鸦板为啥不能播放音乐??

Arduino与Processing交互-旋转编码器控制播放音乐