vue如何实现视频全屏切换

news/2024/10/25 17:31:50/

        最近项目开发中遇到一个视频窗口全屏切换功能,为此在这里做个记录。

        具体的实现思路:

<template><div class="content-box"><div class="container"><div id="screen" class="screen"><el-button @click="screen()">{{ fullscreen ? "还原" : "最大化" }}</el-button></div></div></div>
</template><script>
export default {data() {return {fullscreen: false,};},mounted() {window.addEventListener("resize", ()=> {if (!this.isFullScreen()) {// 非全屏状态this.fullscreen = false;}});},methods: {//判断是否全屏isFullScreen() {return !!(document.webkitIsFullScreen || this.fullele());},fullele() {return (document.fullscreenElement ||document.webkitFullscreenElement ||document.msFullscreenElement ||document.mozFullScreenElement ||null);},screen() {let element = document.getElementById("screen");if (this.fullscreen) {// 关闭全屏if (document.exitFullscreen) {document.exitFullscreen();} else if (document.webkitCancelFullScreen) {document.webkitCancelFullScreen();} else if (document.mozCancelFullScreen) {document.mozCancelFullScreen();} else if (document.msExitFullscreen) {document.msExitFullscreen();}} else {// 全屏if (element.requestFullscreen) {element.requestFullscreen();} else if (element.webkitRequestFullScreen) {element.webkitRequestFullScreen();} else if (element.mozRequestFullScreen) {element.mozRequestFullScreen();} else if (element.msRequestFullscreen) {// IE11element.msRequestFullscreen();}}this.fullscreen = !this.fullscreen;},},
};
</script><style lang="scss" scoped>
.screen {width: 500px;height: 500px;background-color: #fff;border: 1px solid red;
}
</style>

这里需要监听ESC键,为此做了特殊处理,这里是Demo,跟使用效果图基本差不多

         


http://www.ppmy.cn/news/1199997.html

相关文章

Elasticsearch实战:常见错误及详细解决方案

Elasticsearch实战&#xff1a;常见错误及详细解决方案 1.read_only_allow_delete":“true” 当我们在向某个索引添加一条数据的时候&#xff0c;可能&#xff08;极少情况&#xff09;会碰到下面的报错&#xff1a; {"error": {"root_cause": [{&…

R语言环境下使用curl库做的爬虫代码示例

curl库是一个用于传输数据的工具和库&#xff0c;它支持多种协议&#xff0c;包括HTTP、FTP、SMTP等。在爬虫中&#xff0c;curl库可以用来获取网页内容&#xff0c;从而实现爬取网页的功能。通过设置curl的选项&#xff0c;可以实现对网页的请求、响应、重定向等操作。在使用c…

陶瓷生产工艺数字孪生可视化管理平台,推动陶瓷工厂数字化转型新实践

聚焦国家战略需求和先进制造业发展方向&#xff0c;加快数字化发展战略部署&#xff0c;全面推进制造业数字化转型&#xff0c;推进智能制造典型场景和示范工厂的标杆引领&#xff0c;助力陶瓷工业的数字化、网络化、智能化并行推进、融合发展。数字孪生、物联网、云计算、人工…

关于Andorid Studio中build.gradle和setting.gradle配置变更

Build was configured to prefer settings repositories over project repositories but repository Google was added by build file xx/build.gradle 报错的原因是因为&#xff0c;在Android Gradle 7.x 版本中 Android Studio倾向于将下属依赖添加到setting.gradle中&#x…

RK3566上运行yolov5模型进行图像识别

一、简介 本文记录了依靠RK官网的文档&#xff0c;一步步搭建环境到最终在rk3566上把yolov5 模型跑起来。最终实现的效果如下&#xff1a; 在rk3566 板端运行如下app&#xff1a; ./rknn_yolov5_demo model/RK356X/yolov5s-640-640.rknn model/bus.jpg其中yolov5s-640-640.r…

[黑马程序员Pandas教程]——Pandas数据结构

目录&#xff1a; 学习目标认识Pandas中的数据结构和数据类型Series对象通过numpy.ndarray数组来创建通过list列表来创建使用字典或元组创建s对象在notebook中不写printSeries对象常用API布尔值列表获取Series对象中部分数据Series对象的运算DataFrame对象创建df对象DataFrame…

网络运维Day01

文章目录 环境准备OSI七层参考模型什么是协议&#xff1f;协议数据单元(PDU)设备与层的对应关系什么是IP地址&#xff1f;IP地址分类IP的网络位和主机位IP地址默认网络位与主机位子网掩码默认子网掩码查看IP地址安装CISCO汉化CISCO(可选操作) CISCO之PC机器验证通信 CISCSO之交…

Golang面试题从浅入深高频必刷「2023版」

大家好&#xff0c;我是阳哥。专注Go语言的学习经验分享和就业辅导。 Go语言特点 Go语言相比C/Java等语言是优雅且简洁的&#xff0c;是我最喜爱的编程语言之一&#xff0c;它既保留了C的高性能&#xff0c;又可以像Java&#xff0c;Python优雅的调用三方库和管理项目&#x…