VUE创建播发器组件并调用

2023-10-28

首先用vue-cli创建前端项目

参考:https://www.cnblogs.com/ouyangkai/p/11549290.html

新建play.vue文件

编写play组件

<template>
  <div>
    <el-row>
      <el-col :span="4">
        <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="14" 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="6"
        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: 0,
        maxTime: 0,
        volume: 100
      }
    }
  },
  mounted () {
    this.$nextTick(() => {
      setInterval(this.listenMusic, 1000)
    })
  },
  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 > 100) {
        this.music.volume = 100
      }
      if (this.music.volume < 0) {
        this.music.volume = 0
      }
      this.$refs.music.volume = this.music.volume / 100
    },
    formatTime (time) {
      let it = parseInt(time)
      let m = parseInt(it / 60)
      let s = parseInt(it % 60)
      return (m < 10 ? '0' : '') + parseInt(it / 60) + ':' + (s < 10 ? '0' : '') + parseInt(it % 60)
    }
  }
}
</script>
View Code

以上代码直接复制保存即可

 

 引用组件,在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

成功引用!

转载于:https://www.cnblogs.com/ouyangkai/p/11549673.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VUE创建播发器组件并调用 的相关文章

  • Angular 在 Img 末尾添加额外变量 %E2%80%8B

    http myimage png E2 80 8B 我刚刚复制粘贴了这个图像网址 但它最后添加了一些奇怪的数据 并且图像没有显示 但在代码上它看起来很完美 我尝试过类似 Angular 的东西 var imageSafeUrl this s
  • 在一定时间后自动更改 Firestore 中的字段值 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 I m working on Javascript and here s how s my data looks like 我想要的功
  • 使用 JavaScript 查找数组中最接近的日期

    我有一个包含天数的数组 每一天都是一个对象 例如 day year 2012 day month 08 day number 03 day name mon 我还通过使用以下方法向每个日期对象添加了时间戳属性 function conver
  • 如果用户禁用了 javascript,如何回退到完全不同的索引页面?

    我有一个大型 动态生成的单页网站 该网站严重依赖 javascript 我想为没有 javascript 的人提供后备 每个版本必须有不同的 php 代码 所以基本上我需要一个完全不同的索引页面 我不想将所有内容都包装在 javascrip
  • 如何使用 JavaScript 获取光标下的单词?

    如果我有 p some long text p 在我的 HTML 页面上 我如何知道鼠标光标位于 文本 一词上方 我的另一个答案仅适用于 Firefox 这个答案适用于 Chrome 也许在 Firefox 中也能工作 我不知道 funct
  • 系统js语法错误,IE11

    我有一个 Angular 2 应用程序可以在 Firefox 和 Chrome 中工作 但在 IE 中却没有那么多工作 根据我的堆栈跟踪 我的 System js 设置似乎存在问题 这是我在网络控制台中看到的错误描述 Error Syste
  • EXT JS中有全局变量吗

    在 java 和 C 中 我们可以全局存储变量并从项目中的任何位置访问它的值 比如说 我在一个名为Residence我正在保存residenceNumber这是一个INT到一个名为的全局变量houseNumberGlobalVariable
  • 在 NodeJs 中使用 Jest 模拟 Http Post 请求

    我有一个使用本机 https request 使用 Azure Function 内的 Node Js 构建的外部 POST API 一切正常 现在我正在尝试构建单元测试用例 并对模拟 Request 方法感到震惊 回调响应具有 on 功能
  • Karma Webpack - 错误:找不到模块“./test/utilities.js”

    我正在使用 Karma Webpack 进行项目的单元测试 当我跑步时karma start 我有这个错误 Error Cannot find module test utilities js at myproject test campa
  • JSON 解析错误 - JSON 中位置 1 处出现意外标记 o

    我需要获取一个 JSON 对象并记录标题控制台以实现自动完成功能 我的 json 的示例如下 title Example 1 url http www example1 com title Example 2 url http www ex
  • JavaScript - babel-preset-env 不为 IE11 转换箭头函数

    我很难尝试配置 Babel 来转译 IE11 可以理解的代码 特别是箭头函数 跑步npx webpack mode development使用我的配置不会转换我的代码中的箭头函数 在eval 在生成的代码中的语句中 我可以看到所有实例都未转
  • 如何拆分字符串,在特定字符处断开?

    我有这个字符串 john smith 123 Street Apt 4 New York NY 12345 使用 JavaScript 将其解析为最快的方法是什么 var name john smith var street 123 Str
  • Django 管理中的自定义依赖下拉菜单

    我有一个按阶段模型的项目外键 我很难在 Django 管理页面中创建依赖的下拉列表 我想当用户从该项目的 项目下拉 阶段选择一个项目时 在第二个下拉菜单中显示 实现这一目标的最佳方法是什么 如果下拉列表根据其父级的值来过滤项目 那就太好了
  • 链接index.html client.js 和 server.js

    我从 Node js 开始 我的第一个程序已经遇到了问题 下面是我正在使用的代码 索引 html
  • Chrome 扩展程序导致 DOM 闪烁,该扩展程序会在页面加载之前删除 DOM 元素

    我正在编写一个 chrome 扩展 我想在页面加载之前删除内容 例如this http tech blog tomchambers me 2016 01 13 How to write a simple page rewriting Chr
  • 纯 JavaScript 工具提示

    我正在尝试用纯 JavaScript 制作一个工具提示 显示在hover 就像 Stack Overflow 中将鼠标悬停在个人资料名称 a 上一样div显示 我尝试使用onmouseover onmouseout并添加了setTimeou
  • Bootstrap 多选限制问题

    我使用创建了一个多选下拉列表引导多选 http davidstutz github io bootstrap multiselect 我需要在选项选择中设置一个限制 这里我将其设置为 5 如果达到限制 我只需禁用其他选择选项 它就可以完美工
  • 如何使用 $.ajax 发送 JSON 而不是查询字符串?

    有人可以简单地解释一下如何让 jQuery 发送实际的 JSON 而不是查询字符串吗 ajax url url dataType json I was pretty sure this would do the trick data dat
  • Firefox 本地主机上的 Twilio 屏幕共享?

    目前 Firefox 中本地主机上的屏幕共享会引发以下错误 The request is not allowed by the user agent or the platform in the current context 这是我的代码
  • 什么是标志变量?

    最近我遇到了标志变量 但我不知道它们的作用 我不太确定何时使用标志变量以及如何使用它 我用 Google 搜索了它 但没有任何与我的上下文 JavaScript 相关的具体示例 标记变量的定义和使用 http www javascriptk

随机推荐

  • Django 省、市、区 三级联动 及数据库的地址添加 !!!

    应用场景 淘宝 京东 等需要地址的地方 Models py模型 from django db import models Create your models here class Area models Model name models
  • Redis可视化工具RedisInsight

    今天是老苏居家隔离的第 39 天 周五抗原 周六 周日 周一每天两次抗原 上午一次 下午一次 没完没了的捅鼻子 感觉都要捅出鼻炎了 虽然小区早就是防范区了 但是一直处于提级管理中 还是不能出小区 也看不到任何松动的迹象 最近几天都在传 一人
  • R reason ‘拒绝访问‘的解决方案

    Win11系统 安装rms的时候报错 Error in loadNamespace j lt i 1L c lib loc libPaths versionCheck vI j namespace Matrix 1 5 4 1 is alr
  • 使用Thinkphp5.0 中 {include file="index/left" /} 引入模板 影响样式

    在使用Thinkphp 5 0框架开发后台的时候 需要在模板中引用公共头部 我使用 include file index header 的方式引用了公共头部 引用之后发现头部和页面顶端之间出现了间距 未引用之前 头部和页面顶端是没有间距的
  • Azure文件同步服务的创建和配置

    将Azure FileShare share1同步到Server Endpoint 在这没法添加 只能管理服务 选择 Create a resource 查找 azure file sync 注意 选择的Location 一定要与File服
  • PLY文件格式及其MATLAB读写操作

    PLY是一种电脑档案格式 全名为多边形档案 Polygon File Format 或 斯坦福三角形档案 Stanford Triangle Format 史丹佛大学的 The Digital Michelangelo Project计划采
  • Arduino实验三:伺服马达

    目录 前言 1 伺服马达 1 1 相关参数 1 2实物图 1 3连接线路图 1 4程序代码 1 5运行结果 前言 伺服马达和直流马达的区别 伺服马达有3条接入线 在输入信号的控制下 能够转动特定角度 其中三条线中 红色线接正极 棕色线接地
  • App常见内存泄漏以及解决方法

    如果是想认真学习的话 请先不要看以下内容 此记录只是为加深记忆 可能会有错误的地方 以免有误导 学习转载链接 https blog csdn net u014674558 article details 62234008 App常见内存泄漏
  • python怎么实现类似#define宏定义

    我怎么了 怎么突然问出这个问题 一时还认真的点进了论坛 面壁思过一下 python是解释性语言 不需要编译 define是预编译阶段起作用的 python没得必要 在c语言中 define在调试或者多平台兼容的时候很有用 特别是 defin
  • [内核文档系列] NMI 看门狗

    内核文档系列 NMI 看门狗 秦白衣 qinchenggang sict ac cn X86和X86 64体系结构均支持NMI看门狗 你的系统是不是会经常被锁住 Lock up 直至解锁 系统不再响应键盘 你希望帮助我们解决类似的问题吗 如
  • AttributeError: 'numpy.dtype' object has no attribute 'base_dtype'

    AttributeError numpy dtype object has no attribute base dtype 这个错误其实是有说keras版本有点高的问题 我调低了 Keras 2 0 2 具体他有没有影响 我没有验证 但是下
  • 机器学习K-均值——nonzero(clusterAssment[冒号,0].A==cent的一步步操作演示,看完你就明白了

    先准备测试数据 如下 上面都是准备数据 下面才是一步步的告诉你怎么生成我们要的数据 原文链接 https blog csdn net xinjieyuan article details 81477120
  • Educoder C&C++线性表实训

    目录 第1关 顺序构建线性表 第2关 逆序构建线性表 第3关 排序构建线性表 第4关 查找元素 第5关 删除指定位置的结点 第6关 删除包含特定数据的结点 第7关 线性表长度 第8关 线性表应用一 栈 第9关 线性表应用二 队列 第10关
  • Min Difference

    C Min Difference Problem Statement You are given two sequences A A1 A2 AN consisting of NN positive integers and B B1 BM
  • JenKins工作流程

    程序员提交代码到Git SVN仓库 触发钩子程序向 JenKins 进行通知 Jenkins 调用Git SVN插件获取源码 调用Maven打包为war包 调用Deploy to web container插件部署到Tomcat服务器
  • 无法登陆宝塔面板?宝塔界面为什么无法访问?宝塔面板登陆不上?宝塔面板打不开解决办法

    很多小伙伴很久没有登陆宝塔面板 再次打开宝塔面板就出现了上面这种情况 下面张大哥介绍几个排查方法 帮助大家协助解决一下此类问题 第一 请检查你是否在安全组开放8888端口 一般安装环境时默认为8888端口 如果更改为其他自定义端口的话 需要
  • [Pytorch系列-53]:循环神经网络 - torch.nn.LSTM()参数详解

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 121644547 目录 第1章 LST
  • 为Unity3D编写Low-level Native Plugin(OpenGL Renderer Plugin)作渲染

    为Unity3D编写Low level native plugin插件 主要是用作对Unity自带的render pipeline作拓展使用 可以在其渲染的各个stage插入用户自己的渲染代码 具体的编写过程与之前的Native Plugi
  • 【Java基础】注解--@interface使用详解

    注解 interface不是接口是注解类 在jdk1 5之后加入的功能 使用interface自定义注解时 自动继承了java lang annotation Annotation接口 在定义注解时 不能继承其他的注解或接口 interfa
  • VUE创建播发器组件并调用

    首先用vue cli创建前端项目 参考 https www cnblogs com ouyangkai p 11549290 html 新建play vue文件 编写play组件