Vue3 全屏组件 源码

在Vue 3中,实现了全屏功能的组件,开箱即用。

使用了screenfull依赖库,可以省去浏览器适配的麻烦。

代码如下:

<template><div ref="myFullScreen" ><slot></slot></div>
</template>
<script setup lang="ts">
import { ModelRef, ref, watch } from "vue";
import screenfull from "screenfull";const myFullScreen = ref();const isFull: ModelRef<boolean> = defineModel<boolean>({ default: false });// Esc退出 F11 退出等 会触发这个事件,要及时更新最新的状态
// 全屏前后样式上的调整,建议也在这里面填写
screenfull.on("change", () => {isFull.value = screenfull.isFullscreen;showFullBackground.value = isFull.value;
});const fullScreenChange = () => {if (isFull.value) {screenfull.request(myFullScreen.value);} else {screenfull.exit();}
};watch(isFull, () => {fullScreenChange();
});
</script>

这个组件开放了一个v-model给引用的组件,使用方法如下:

<template><MyFullScreen v-model="isFull">...<el-icon @click="switchFullScreen" ><FullScreen /></el-icon></MyFullScreen>
</template><script lang="ts" setup>
const isFull: Ref<boolean> = ref(false);
const switchFullScreen = () => {isFull.value = !isFull.value;
};</script>

结束。

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

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

相关文章

ResizeObserver监听画布尺寸改变动态渲染echarts

前言&#xff1a; 在日常开发中有时遇到同数据相关的业务可能会用到echarts插件。一般在封装echarts组件的时候大家可能都会通过windows对象监听浏览器窗口大小的改变动态渲染echarts,这样当echarts窗口改变导致echarts画布元素大小改变的同时&#xff0c;就能调用相关api进行重…

RocketMQ相关知识知多少

一、RocketMQ的定义 官网网址&#xff1a;领域模型概述 | RocketMQ Apache RocketMQ 自诞生以来&#xff0c;因其架构简单、业务功能丰富、具备极强可扩展性等特点被众多企业开发者以及云厂商广泛采用。历经十余年的大规模场景打磨&#xff0c;RocketMQ 已经成为业内共识的金…

Flink的简单学习二

一 Flink的核心组件 1.1 client 1.将数据流程图DataFlow发送给JobManager。 1.2 JobManager 1.收集client的DataFlow图&#xff0c;将图分解成一个个的task任务&#xff0c;并返回状态更新数据给client 2.JobManager负责作业调度&#xff0c;收集TaskManager的Heartbeat和…

方法调研:DDOS检测有哪些方法?

检测DDoS攻击的方法多种多样,主要可以归纳为以下几类:流量分析、行为分析、协议分析、分布式检测和基于机器学习的方法。每种方法都有其独特的优势和适用场景。以下是这些方法的详细介绍: 1. 流量分析 基线分析 原理:建立正常流量的基线,通过比较当前流量与基线的偏差来…

【Java】--SpringBoot 统一异常处理

目录 统一异常处理 统一异常处理 通过使用注解ControllerAdvice&#xff08;控制器通知类&#xff09;ExceptionHandler&#xff08;异常处理器&#xff09;来实现&#xff0c;两个结合表示出现异常的时候执行某个通知&#xff0c;即执行某个方法事件。 对应的异常类执行对应…

三、基于图像分类预训练编码及图神经网络的预测模型 【框图+源码】

背景&#xff1a; 抽时间补充&#xff0c;先挖个坑。 一、模型结构 二、源码

美团一面:什么是CAS?有什么优缺点?我说你说的是AtomicInteger吗?

引言 传统的并发控制手段&#xff0c;如使用synchronized关键字或者ReentrantLock等互斥锁机制&#xff0c;虽然能够有效防止资源的竞争冲突&#xff0c;但也可能带来额外的性能开销&#xff0c;如上下文切换、锁竞争导致的线程阻塞等。而此时就出现了一种乐观锁的策略&#x…

解析Java中1000个常用类:ProcessHandle.Info类,你学会了吗?

效率工具 推荐一个程序员常用的工具网站:程序员常用工具(http://tools.cxyroad.com),有时间戳、JSON格式化、文本对比、HASH生成、UUID生成等常用工具,效率加倍嘎嘎好用。云服务器 云服务器限时免费领:轻量服务器2核4G腾讯云:2核2G4M云服务器新老同享99元/年,续费同价阿…

企业数字化转型的测度难题:基于大语言模型的新方法与新发现

《经济研究》新文章《企业数字化转型的测度难题&#xff1a;基于大语言模型的新方法与新发现》运用机器学习和大语言模型构造一套新的企业数字化转型指标。理论分析和数据交叉验证均表明&#xff0c;构建的指标相对已有方法更准确&#xff1a; 1.第一步&#xff1a;选择“管理…

17.Redis之主从复制

1.主从复制是怎么回事&#xff1f; 分布式系统, 涉及到一个非常关键的问题: 单点问题 单点问题&#xff1a;如果某个服务器程序, 只有一个节点(只搞一个物理服务器, 来部署这个服务器程序) 1.可用性问题,如果这个机器挂了,意味着服务就中断了~ 2.性能/支持的并发量也是比较有限…

【HarmonyOS】鸿蒙系统中应用权限等级介绍、定义、申请授权讲解

【HarmonyOS】鸿蒙系统中应用权限等级介绍、定义、申请授权讲解 针对权限等级&#xff0c;相对于主体来说&#xff0c;会有不同的细分概念。 一、权限APL等级&#xff1a; 首先在鸿蒙系统中&#xff0c;对于权限本身&#xff0c;分为三个等级&#xff1a;normal&#xff0c;s…

(9)svelte 教程: Event Modifiers

&#xff08;9&#xff09;svelte 教程&#xff1a; Event Modifiers 什么是 Event Modifiers Event Modifiers 是 Svelte 框架中的一种特性&#xff0c;它允许你在绑定事件处理函数时&#xff0c;添加一些修饰符来修改事件的默认行为或事件流。通过这些修饰符&#xff0c;可…

SQL面试问题集

目录 Q.左连接和右连接的区别 Q.union 和 union all的区别 1、取结果的交集 2、获取结果后的操作 Q.熟悉开窗函数吗&#xff1f;讲一下row_number和dense_rank的区别。 Q.hive行转列怎么操作的 Q.要求手写的题主要考了聚合函数和窗口函数&#xff0c;row_number()&#…

TypeScript算法每日一题:最富有客户的资产总量(1672)

作者&#xff1a;前端小王hs 阿里云社区博客专家/清华大学出版社签约作者✍/CSDN百万访问博主/B站千粉前端up主 题库&#xff1a;力扣 题目序号&#xff1a;1672&#xff08;简单&#xff09; 题目&#xff1a;最富有客户的资产总量 给你一个m x n的整数网格accounts&#xff…

同一个tomcat不同端口运行不同项目

第一步&#xff1a;修改 server.xml 文件 修改 tomcat 安装目录下 conf/server.xml 文件&#xff0c;需要几个端口就添加几个 Service 节点。 配置 2 个端口&#xff1a;9131 和 9133&#xff0c;于是增加两个 Service 节点。 每个 Service 节点的 name 属性值要设置不同的值…

【MATLAB】雷达信号处理程序源码 雷达系统仿真代码 matlab SAR

【MATLAB】雷达信号处理程序源码 雷达系统仿真代码 matlab SAR 包含以下所有源码,内容如下&#xff1a;&#xff1a; 1、 MATGPR R3探地雷达数据处理 MATLAB 程序 2、 python 雷达图像识别 3、 SAR 雷达回波仿真 matlab 4、 SAR 雷达影像处理源码 5、 STFT 处理 IPIX 雷达…

开源协议及静态链接和动态链接

文章目录 开源LicenseMIT&#xff0c;BSD&#xff0c;Apache LicenseEPLGPL系列 静态链接和动态链接 开源License MIT&#xff0c;BSD&#xff0c;Apache License 这三种随便修改&#xff0c;商业上无风险 EPL 类似于上面三种 GPL系列 LGPL &#xff08;静态链接调用必须…

Vue3组件通信方式

1. 常用的组件通信方式&#xff1a; props&#xff1a;可以实现父子组件、子父组件、甚至兄弟组件通信 自定义事件&#xff1a;可以实现子父组件通信 全局事件总线$bus&#xff1a;可以实现任意组件通信 pubsub&#xff1a;发布订阅模式可以实现任意组件通信 vuex&#xf…

一个知识问答系统,用户的选择决定接下来出现的问题,且下一个问题的呈现取决于前面几个问题的回答

一个知识问答系统&#xff0c;用户的选择决定接下来出现的问题&#xff0c;且下一个问题的呈现取决于前面几个问题的回答&#xff0c;我们需要设计一个更复杂的图结构来表示这些关系。 设计图结构 Question节点&#xff1a;表示问题。Answer节点&#xff1a;表示答案。HAS_AN…

Flutter基础 -- Dart 语言 -- 类抽象接口继承函数库

目录 1. 类 class 1.1 定义、使用类 1.2 构造函数 1.3 初始化列表 1.4 命名构造函数 1.5 重定向构造函数 1.6 callable 2. 类 get set 2.1 定义、使用 get set 2.2 简化 get set 2.3 业务场景 3. 静态 static 3.1 static 定义 3.2 函数内部访问 3.3 静态方法 3…