视频video鼠标移入移除展示隐藏(自定义控件)

效果图

在这里插入图片描述

代码

<template><div class="video-container" @mouseover="showControls" @mouseleave="hideControlsAfterDelay"><videoref="video"@loadedmetadata="initializePlayer"@timeupdate="updateProgress"@ended="resetPlayer"width="640"height="360"src="./11.mp4"></video><!--video自带的属性设置controls="false" 禁用自带默认控件(直接不写才会展示自定义的控件)--><div v-if="isControlsVisible" class="controls"><button @click="playPause">{{ isPlaying ? 'Pause' : 'Play' }}</button><input type="range" min="0" :max="duration" v-model.number="currentTime" @input="seekTo" /><span>{{ formatTime(currentTime) }} / {{ formatTime(duration) }}</span><button @click="muteUnmute">{{ isMuted ? 'Unmute' : 'Mute' }}</button></div></div>
</template><script>
export default {data() {return {isControlsVisible: false,isPlaying: false,isMuted: false,currentTime: 0,duration: 0,controlsTimeout: null,};},methods: {playPause() {const video = this.$refs.video;if (this.isPlaying) {video.pause();} else {video.play();}this.isPlaying = !this.isPlaying;},seekTo(event) {const video = this.$refs.video;video.currentTime = event.target.value;},updateProgress() {this.currentTime = this.$refs.video.currentTime;},initializePlayer() {this.duration = this.$refs.video.duration;},resetPlayer() {this.currentTime = 0;this.isPlaying = false;},muteUnmute() {const video = this.$refs.video;video.muted = !video.muted;this.isMuted = video.muted; // 更新静音状态},// 可以添加一个计算属性来显示当前的播放/暂停和静音/取消静音文本computed: {isMuted() {return this.$refs.video.muted;},},showControls() {this.isControlsVisible = true;if (this.controlsTimeout) {clearTimeout(this.controlsTimeout);this.controlsTimeout = null;}},hideControlsAfterDelay() {this.controlsTimeout = setTimeout(() => {this.isControlsVisible = false;}, 3000); // 3秒后隐藏控件,时间可根据需要调整},formatTime(time) {const minutes = Math.floor(time / 60);const seconds = Math.floor(time % 60).toString().padStart(2, '0');return `${minutes}:${seconds}`;},},
};
</script><style scoped>
.video-container {position: relative;width: 640px;height: 360px;border: 1px solid #ccc;
}.controls {position: absolute;bottom: 10px;left: 10px;right: 10px;display: flex;justify-content: space-between;align-items: center;background: rgba(255, 255, 255, 0.7);padding: 5px;border-radius: 5px;
}.controls button,
.controls input[type="range"] {flex: 1;
}.controls input[type="range"] {margin: 0 10px;
}
</style>

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

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

相关文章

【连接池】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…

ubuntu24.04安装Kubernetes1.31.0(k8s1.30.0)高可用集群

ubuntu24.04安装Kubernetes1.30.0(kubernetes1.30.0)高可用集群 一、总体概览 目前最新版的K8S版本应该是1.31.0,我们安装的是第二新的版本1.30.0,因为有大神XiaoHH Superme指路,所以基本上没踩坑,很顺利就搭建完成了。所有的机器都采用的最新版Ubuntu-Server-24.04长期支…

Ubuntu中的apt update 和 apt upgrade

apt update 和 apt upgrade 是 Debian 及其衍生发行版&#xff08;如 Ubuntu&#xff09;中常用的两个 APT 包管理命令&#xff0c;它们各自执行不同的任务&#xff1a; apt update: 这个命令用于更新本地软件包列表。当你运行 apt update 时&#xff0c;APT 会从配置的源&…

鸿蒙HarmonyOS vs Android系统对比

鸿蒙系统 (HarmonyOS) vs Android 系统对比 鸿蒙操作系统&#xff08;HarmonyOS&#xff09;是华为推出的多终端操作系统&#xff0c;旨在构建一个 跨设备、跨平台、智能化 的生态系统。与 Android 系统相比&#xff0c;鸿蒙有其独特的设计理念和技术架构。以下是它们在多个关…

Hbase 部署

HBase是一个分布式的、面向列的开源数据库&#xff0c;它是Apache Hadoop项目的子项目。为了成功部署HBase&#xff0c;可以按照以下步骤进行&#xff1a; 主机部署 一、准备环节 设备基本要求&#xff1a; Hadoop和ZooKeeper&#xff1a;HBase集群需要依赖Hadoop和Zookeepe…

微软要求 Windows Insider 用户试用备受争议的召回功能

拥有搭载 Qualcomm Snapdragon 处理器的 Copilot PC 的 Windows Insider 计划参与者现在可以试用 Recall&#xff0c;这是一项臭名昭著的快照拍摄 AI 功能&#xff0c;在今年早些时候推出时受到了很多批评。 Windows 营销高级总监 Melissa Grant 上周表示&#xff1a;“我们听…

脉冲动画效果

js实现脉冲动画效果&#xff1a; 鼠标点击时&#xff0c;添加动画类&#xff0c;进而实现动画效果&#xff0c;鼠标离开时&#xff0c;移除动画类&#xff0c;回归静态图效果。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UT…

Linux—进程学习—04(进程地址空间学习)

目录 Linux—进程学习—41.程序地址空间1.1虚拟地址空间的现象1.2虚拟地址空间的理解(感性) 2.进程地址空间2.0 mm_struct结构体2.1 mm_struct结构体的源代码2.2分页&虚拟地址空间解释前面的实验现象 2.3进程地址空间存在的原因2.3.1第一个原因2.3.2第二个原因2.3.3第三个原…

Java集成Sa-Token进行认证与授权

引言 软件开发过程中都必须要有的一个功能&#xff0c;那就是认证与授权&#xff0c;经过大佬们的不断更新迭代&#xff0c;使得如今实现认证与授权功能变得相对简单&#xff0c;也许你并不能真正的接触到认证与授权这一功能&#xff0c;除非你接触的项目是从0到1的&#xff0c…

uni-app获取到的数据如何保留两位小数

<view><text class"daily_r">{{ (chartD.selfPowerCount || 0).toFixed(2) }}</text>度</view> 1&#xff0c;在模板中&#xff0c;所有需要保留两位小数的数值都使用了 toFixed(2) 方法&#xff0c;例如 {{ (chartD.selfPowerCount || 0).…

图论入门编程

卡码网刷题链接&#xff1a;98. 所有可达路径 一、题目简述 二、编程demo 方法①邻接矩阵 from collections import defaultdict #简历邻接矩阵 def build_graph(): n, m map(int,input().split()) graph [[0 for _ in range(n1)] for _ in range(n1)]for _ in range(m): …

09. 字典

一、什么是字典 在 Python 中&#xff0c;字典&#xff08;dictionary&#xff09;是一系列 键值对。每个键都与一个值关联&#xff0c;可以使用键来访问与之关联的值。字典中的 元键 只能是 不可变类型 的数据类型&#xff0c;也就是 可哈希类型。与键相关的值可以是数字、字符…

QT的exec函数

在Qt框架中&#xff0c;exec()方法是QDialog类&#xff08;及其子类&#xff09;的一个成员函数&#xff0c;用于以模态&#xff08;modal&#xff09;方式显示对话框。当exec()被调用时&#xff0c;它会启动一个局部的事件循环&#xff0c;这个循环会阻塞对对话框之外的其他窗…

Oracle对比表与表之间的结构

自己首先想到的就是,navicat有提供结构同步 但是有些时候情况不一样,比如我遇到的是连接不同,而且是互相同步,以最多的列的那个表为样 没有说一个固定的源 那么还可以通过导出表结构去另一个库中执行看是否报错,以此来判断结构的不同 但是我感觉有点儿麻烦 最后想到通过sql语…

数据结构与算法——N叉树(自学笔记)

本文参考 N 叉树 - LeetBook - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台 遍历 前序遍历&#xff1a;A->B->C->E->F->D->G后序遍历&#xff1a;B->E->F->C->G->D->A层序遍历&#xff1a;A->B->C->D->…

云计算之elastaicsearch logstach kibana面试题

1.ELK是什么? ELK 其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写 Elasticsearch:负责日志检索和储存 Logstash:负责日志的收集和分析、处理 Kibana:负责日志的可视化 这三款软件都是开源软件,通常是配合使用,而且又先后归于 Elastic.co 公司名下,…

关于音频 DSP 的接口种类以及其应用场景介绍

在音频系统中&#xff0c;DSP&#xff08;数字信号处理器&#xff09;扮演着重要角色&#xff0c;通常会通过不同的接口与音频系统中的其他组件&#xff08;如功放、扬声器、音频源等&#xff09;进行连接。以汽车应用场景为例&#xff0c;以下是一些常见的接口类型分类及其介绍…

Linux操作系统学习---初识环境变量

目录 ​编辑 环境变量的概念&#xff1a; 小插曲&#xff1a;main函数的第一、二个参数 获取环境变量信息&#xff1a; 1.main函数的第三个参数 2.查看单个环境变量 3.c语言库函数getenv() 和环境变量相关的操作指令&#xff1a; 1.export---导出环境变量&#xff1a; 2.unse…

每日速记10道java面试题04

其他资料 每日速记10道java面试题01-CSDN博客 每日速记10道java面试题02-CSDN博客 每日速记10道java面试题03-CSDN博客 目录 一、什么是java的自动拆箱和装箱&#xff1f; 二、什么是java中的迭代器&#xff1f; 三、Java 运行时异常和编译时异常之间的区别是什么? 四、…

Python字典的用法(定义、增加、删除、修改、查询、遍历)

一.字典的介绍 dictionary&#xff08;字典&#xff09;是除了列表以外的 Python 中最灵活的数据类型。dict&#xff08;字典&#xff09;可以采用多个数据&#xff0c;通常用于存储描述一个物体的相关信息。 字典和列表最主要的区别是&#xff0c;字典是无序的对象集合&#x…