vue.js 3.2.22:自动旋转的音乐播放按钮
一,演示代码:
Home.vue
<template><div style="width:100%;height: 100vh;">
<div :class="statusClass" @click="buttonClick" style="position:fixed;right:30px;top:30px;"></div>
<audio ref="music" src="/static/audio/SeeYouAgain.mp3" class="media-audio" loop autoplay ></audio>
</div>
</template>
<script>
import {ref} from "vue"
export default {
name: "Home",
setup() {
//music ref
const music = ref()
//class
const statusClass = ref("stoping")
//点击播放按钮
const buttonClick = () => {
//alert('buttonClick');
if (statusClass.value === "stoping") {
//开始播放
play();
} else {
//停止播放
stop();
}
}
//播放
const play = () => {
statusClass.value = "playing";
music.value.play();
}
//停止
const stop = () => {
statusClass.value = "stoping";
music.value.pause();
}
return {
buttonClick,
music,
statusClass,
}
}
}
</script>
<style scoped>
.playing{background: url('/static/img/music_on.png') no-repeat 0 0;width: 44px;height: 44px;animation: rotating 1.2s linear infinite;}
.stoping{background: url('/static/img/music_off.png') no-repeat 0 0;width: 44px;height: 44px;}
@keyframes rotating {
from{
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
to{
-webkit-transform: rotate(360deg);
-moz-transform: rotate(360deg);
-ms-transform: rotate(360deg);
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
}
</style>
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
或: https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,测试效果
停止时:
播放时:
三,查看vue的版本:
liuhongdi@lhdpc:/data/vue/audio$ npm list vueaudio@0.1.0 /data/vue/audio
├─┬ @vue/cli-plugin-babel@4.5.15
│ └─┬ @vue/babel-preset-app@4.5.15
│ └── vue@3.2.22 deduped
└─┬ vue@3.2.22
└─┬ @vue/server-renderer@3.2.22
└── vue@3.2.22 deduped
以上是 vue.js 3.2.22:自动旋转的音乐播放按钮 的全部内容, 来源链接: utcz.com/z/375135.html