css特效之旋转音乐播放器

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

  1. transform
  2. setInerval

怎么添加背景音乐我会在下一篇介绍 https://www.cnblogs.com/zouwangblog/p/11138734.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);
      },

效果图
1646268-20190708094352611-283026195.png

1646268-20190708094357472-1832281863.png

转载于:https://www.cnblogs.com/zouwangblog/p/11149382.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值