视频列表:点击某个视频进行播放,其余视频全部暂停(同时只播放一个视频)

目录

  • 需求
  • 实现原理
  • 实现代码
  • 页面展示

需求

视频列表:点击某个视频进行播放,其余视频全部暂停(同时只播放一个视频

实现原理

  1. 在 video 标签添加 自定义属性 id (必须唯一)
  2. 给每个 video 标签 添加 play 视频播放事件
  3. 播放视频时,触发 play 事件,通过添加的自定义属性 id 判断,将 非当前播放视频都暂停

实现代码

<!-- 查看视频 -->
<template><el-drawertitle="查看视频"size="70%":visible.sync="drawerVisible"destroy-on-close:before-close="handleClose"><div class="list"><div v-for="item in videoList" :key="item.id"><!-- 【主要代码】添加自定义属性 id --><video width="100%" controls="controls" :data-id="item.id"><source src="./video.mp4" type="video/mp4" /></video></div></div></el-drawer>
</template><script>
export default {name: 'VideoListDrawer',data() {return {drawerVisible: false,drawerType: '',videoList: [...Array(20).keys()].map((item) => {return {id: item}}),currentVideo: ''}},methods: {open(type, rowData) {this.drawerType = typesetTimeout(() => {this.getVideoDom()}, 500)this.drawerVisible = true},// 【主要代码】视频播放暂停处理函数getVideoDom() {const videoList = document.querySelectorAll('video')videoList.forEach((item) => {// 每个 video 添加 play 监听事件item.addEventListener('play', (e) => {// 获取当前播放视频的自定义属性 id 的值this.currentVideo = e.target.dataset.id// 遍历所有 video 标签,将非当前播放视频都暂停videoList.forEach((i) => {if (i.dataset.id !== this.currentVideo) {i.pause() // 暂停视频}})})})},handleClose() {this.drawerVisible = false}}
}
</script><style lang='scss' scoped>
::v-deep .el-drawer {.el-drawer__header {text-align: left;}.el-drawer__body {padding: 10px 20px;text-align: left;.btns {margin-bottom: 10px;}.list {display: flex;flex-wrap: wrap;> div {width: calc(50% - 10px);margin-right: 10px;margin-bottom: 10px;}}}
}
</style>

页面展示

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/161253.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode力扣】287.寻找重复数

1、题目介绍 原题链接&#xff1a;287. 寻找重复数 - 力扣&#xff08;LeetCode&#xff09; 示例 1&#xff1a; 输入&#xff1a;nums [1,3,4,2,2] 输出&#xff1a;2示例 2&#xff1a; 输入&#xff1a;nums [3,1,3,4,2] 输出&#xff1a;3提示&#xff1a; 1 < n &l…

Hadoop环境搭建及Demo

参考博客 Windows 10安装Hadoop 3.3.0教程 (kontext.tech) Hadoop入门篇——伪分布模式安装 & WordCount词频统计 | Liu Baoshuai’s Blog Hadoop安装教程 Linux版_linux和hadoop的安装_lnlnldczxy的博客-CSDN博客 hadoop启动出错 The value of property bind.address …

idea中配置spring boot单项目多端口启动

参照文章 https://zhuanlan.zhihu.com/p/610767685 项目配置如下 下面为 idea 2023&#xff0c;不同版本的设置有区别&#xff0c;但是没那么大&#xff0c;idea 2023默认使用新布局&#xff0c;切换为经典布局即可。 在项目根目录的.idea/workspace.xml文件里添加如下配置 &l…

学电脑编程零基础,计算机编程入门先学什么

学电脑编程零基础&#xff0c;计算机编程入门先学什么&#xff0c;建议先从容易学习的语言入手&#xff0c;比如中文编程。 给大家分享一款中文编程工具&#xff0c;零基础轻松学编程&#xff0c;不需英语基础&#xff0c;编程工具可下载。 这款工具不但可以连接部分硬件&…

Java之图书管理系统

&#x1f937;‍♀️&#x1f937;‍♀️&#x1f937;‍♀️ 今天给大家分享一下Java实现一个简易的图书管理系统&#xff01; 清风的个人主页&#x1f389;✏️✏️ &#x1f302;c/java领域新星创作者 &#x1f389;欢迎&#x1f44d;点赞✍评论❤️收藏 &#x1f61b;&…

用于 GaN-HEMT 功率器件仿真的 TCAD 方法论

目录 标题&#xff1a;TCAD Methodology for Simulation of GaN-HEMT Power Devices来源&#xff1a;Proceedings of the 26th International Symposium on Power Semiconductor Devices & ICs(14年 ISPSD)GaN-HEMT仿真面临的挑战文章研究了什么文章的创新点文章的研究方法…

JSP 学生成绩查询管理系统eclipse开发sql数据库serlvet框架bs模式java编程MVC结构

一、源码特点 JSP 学生成绩查询管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;比较流行的servlet框架系统具有完整的源代码和数据库&#xff0c;eclipse开发系统主要采用B/S模式 开发。 java 学生成绩查询管理系统 代码下载链接…

LeetCode 热题100——链表专题

一、俩数相加 2.俩数相加&#xff08;题目链接&#xff09; 思路&#xff1a;这题题目首先要看懂&#xff0c;以示例1为例 即 342465807&#xff0c;而产生的新链表为7->0->8. 可以看成简单的从左向右&#xff0c;低位到高位的加法运算&#xff0c;4610&#xff0c;逢…

5.4 删除字符串中的所有相邻重复项(LC1047-E)

算法&#xff1a; 相对于20. 有效的括号 (opens new window)来说其实也是匹配问题&#xff0c;20. 有效的括号 是匹配左右括号&#xff0c;本题是匹配相邻元素&#xff0c;最后都是做消除的操作。 本题也是用栈来解决的经典题目。 那么栈里应该放的是什么元素呢&#xff1f;…

Solidity数据类型之函数类型

solidity中函数的形式 function <function name>(<parameter types>) {internal|external|public|private} [pure|view|payable] [returns (<return types>)]每个关键字的意思&#xff08;方括号里面的写不写都可以&#xff09; function&#xff1a; 声明函…

安全防御——二、ENSP防火墙实验学习

安全防御 一、防火墙接口以及模式配置1、untrust区域2、trust区域3、DMZ区域4、接口对演示 二、防火墙的策略1、定义与原理2、防火墙策略配置2.1 安全策略工作流程2.2 查询和创建会话 3、实验策略配置3.1 trust-to-untrust3.2 trust-to-dmz3.3 untrust-to-dmz 三、防火墙的区域…

c面向对象编码风格(上)

面向对象和面向过程的基本概念 面向对象和面向过程是两种不同的编程范式&#xff0c;它们在软件开发中用于组织和设计代码的方式。 面向过程编程&#xff08;Procedural Programming&#xff09;是一种以过程&#xff08;函数、方法&#xff09;为核心的编程方式。在面向过程…