css特效之旋转音乐播放器
Posted zouwangblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了css特效之旋转音乐播放器相关的知识,希望对你有一定的参考价值。
本次需要用到的知识点有:
- transform
- 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特效之旋转音乐播放器的主要内容,如果未能解决你的问题,请参考以下文章
Android简易音乐重构MVVM Java版-解决播放界面旋转动画卡顿及播放异常崩溃问题(二十一)