VUE创建播发器组件并调用
欢迎来到我的友链小屋
首先用vue-cli创建前端项目
参考:https://www.cnblogs.com/ouyangkai/p/11549290.html
新建play.vue文件

编写play组件
<template>
<div>
<el-row>
<el-col :span="">
<el-popover placement="top-start" trigger="hover">
<div style="text-align: center">
<el-progress
color="#67C23A"
type="circle"
:percentage="music.volume"
></el-progress
><br />
<el-button
@click="changeVolume(-10)"
icon="el-icon-minus"
circle
></el-button>
<el-button
@click="changeVolume(10)"
icon="el-icon-plus"
circle
></el-button>
</div>
<el-button
@click="play"
id="play"
slot="reference"
:icon="music.isPlay ? 'el-icon-refresh' : 'el-icon-caret-right'"
circle
></el-button>
</el-popover>
</el-col>
<el-col :span="" style="padding-left: 20px">
<el-slider
@change="changeTime"
:format-tooltip="formatTime"
:max="music.maxTime"
v-model="music.currentTime"
style="width: 100%;"
></el-slider>
</el-col>
<el-col
:span=""
style="padding: 9px 0px 0px 10px;color:#909399;font-size: 13px"
>
{{ formatTime(music.currentTime) }}/{{ formatTime(music.maxTime) }}
</el-col>
</el-row>
<audio ref="music" loop autoplay>
<source src="../mp4/pkn0m-iuv0i.mp3" type="audio/mpeg" />
</audio>
</div>
</template> <script>
export default {
data () {
return {
music: {
isPlay: false,
currentTime: ,
maxTime: ,
volume:
}
}
},
mounted () {
this.$nextTick(() => {
setInterval(this.listenMusic, )
})
},
methods: {
listenMusic () {
if (!this.$refs.music) {
return
}
if (this.$refs.music.readyState) {
this.music.maxTime = this.$refs.music.duration
}
this.music.isPlay = !this.$refs.music.paused
this.music.currentTime = this.$refs.music.currentTime
},
play () {
if (this.$refs.music.paused) {
this.$refs.music.play()
} else {
this.$refs.music.pause()
}
this.music.isPlay = !this.$refs.music.paused
this.$nextTick(() => {
document.getElementById('play').blur()
})
},
changeTime (time) {
this.$refs.music.currentTime = time
},
changeVolume (v) {
this.music.volume += v
if (this.music.volume > ) {
this.music.volume =
}
if (this.music.volume < ) {
this.music.volume =
}
this.$refs.music.volume = this.music.volume /
},
formatTime (time) {
let it = parseInt(time)
let m = parseInt(it / )
let s = parseInt(it % )
return (m < ? '' : '') + parseInt(it / ) + ':' + (s < ? '' : '') + parseInt(it % )
}
}
}
</script>
以上代码直接复制保存即可
引用组件,在app.vue 中的 script 导入组件,并且在components中声明
<script>
import play from '../src/components/play'
export default { name: 'App',
components: {
play
} }
</script>
在app.vue template 里面的div 里面添加自定义play组件
<play />
运行项目:npm run dev

成功引用!
VUE创建播发器组件并调用的更多相关文章
- vue中的父子组件相互调用
vue中的父子组件相互调用: 1.vue子组件调用父组件方法:子组件:this.$emit('xx'); 父组件:定义yy方法,并在引用子组件时传参,如@xx="yy" 2.vue ...
- vue 创建单文件组件 注册组件 以及组件的使用
<template> <div id="app"> <v-home></v-home> <hr > <br> ...
- vue第六单元(vue的实例和组件-vue实例的相关属性和方法-解释vue的原理-创建vue的组件)
第六单元(vue的实例和组件-vue实例的相关属性和方法-解释vue的原理-创建vue的组件) #课程目标 掌握vue实例的相关属性和方法的含义和使用 了解vue的数据响应原理 熟悉创建组件,了解全局 ...
- 【vue】父组件主动调用子组件 /// 非父子组件传值
一 父组件主动调用子组件: 注意:在父组件使用子组件的标签上注入ref属性,例如: <div id="home"> <v-header ref="he ...
- Vue 创建组件的两种方法
地址:https://blog.csdn.net/cofecode/article/details/74634301 创建组件的两种方法 1.全局注册 2.局部注册 var child=Vue.ext ...
- Vue+elementUI 创建“回到顶部”组件
1.创建"回到顶部"组件 1 <template> 2 <transition name="el-fade-in"> 3 <div ...
- 关于vue.js 组件的调用
包子初学vue.js,有很多不明白的地方还请大家多多指教,在组件的调用的时候,包子有点懵,因为感觉调用组件的方式非常的麻烦,每一个都要实例化,不过,通过不断询问大牛们,我找到了,动态加载组件的方法~~ ...
- Vue 创建组件的方式
Vue 创建组件的方式 2018年08月07日 11:10:56 虔诚带着决然 阅读数:1015 版权声明:本文为博主原创文章,未经博主允许不得用做其他商业活动. https://blog.csd ...
- vue创建组件
vue创建组件是很容易的: js: Vue.component("component-item",{ //component-item就是我们在HTML页面上引用的组件,它会在 ...
随机推荐
- 【原创】CentOS 7 安装airflow
该文是基于python虚拟化环境来安装,非虚拟化也是一样,虚拟化我只是不想破环系统环境. 安装python虚拟环境 pip install virtualenv 设置环境变量 sudo vi /etc ...
- MongoDB 4.X 用户和角色权限管理总结
关于MongoDB的用户和角色权限的梳理一直不太清晰,仔细阅读了下官方文档,并对此做个总结. 默认情况下,MongoDB实例启动运行时是没有启用用户访问权限控制的,也就是说,在实例本机服务器上都可以随 ...
- python关于SSL的认证--pycurl模块使用
今天在做微信支付退款接口的时候,因为需要使用到双向证书的认证,所以一开始是没有头绪的,后来在网上找到了相类似的教程,发现了pycurl模块,才成功实现了证书认证,教程链接:http://blog.cs ...
- liteos双向链表(十二)
1. 概述 1.1 基本概念 双向链表是指含有往前和往后两个方向的链表,即每个结点中除存放下一个节点指针外,还增加一个指向其前一个节点的指针.其头指针head是唯一确定的. 从双向链表中的任意一个结点 ...
- 01-MySQL 大纲介绍
MySQL 大纲介绍 1.官方定义的MySQL DBA工作内容 (1)运维DBA 初级:各版本.各平台安装搭建.升级 中级:体系结构原理.基础管理(启动关闭.初始化配置文件管理.多实例管理.用户权限管 ...
- Spring(001)-Hello Spring
Spring系列第一篇,先通过Spring实现一个Hello Spring程序. 访问 https://start.spring.io/ 开始spring代码骨架的构建. 输入mvn坐标 加入web和 ...
- Nginx内置变量以及日志格式变量
$args #请求中的参数值$query_string #同 $args$arg_NAME #GET请求中NAME的值$is_args #如果请求中有参数,值为"?",否则为空字符 ...
- IDEA写vue项目出现红色波浪线警告如何解决??
1.看图 2.希望对大家有帮助,只要修改了这个就可以,如有任何问题都可以留言,谢谢大家 2019-09-1923:54:11 作者:何秀好
- opencv旋转图像
#include <opencv2\opencv.hpp> /* @param o The customer origin @param x The customer x @Note Th ...
- 【Spring Data JPA篇】JPA的底层原理(二)
一.接口继承结构 二.底层原理