scrennfull全屏
原理
对于 screenfull 而言,浏览器本身已经提供了对用的 API,点击这里即可查看,这个 API 中,主要提供了两个方法:
- Document.exitFullscreen():该方法用于请求从全屏模式切换到窗口模式
- Element.requestFullscreen():该方法用于请求浏览器(user agent)将特定元素(甚至延伸到它的后代元素)置为全屏模式。
比如我们可以通过 document.getElementById('app').requestFullscreen() 在获取 id=app 的 DOM 之后,把该区域置为全屏
但是该方法存在一定的小问题,比如:可能有的区域背景颜色为黑色
所以通常情况下我们不会直接使用该 API 来去实现全屏效果,而是会使用它的包装库** screenfull**
安装:
npm install screenfull@5.1.0 --save
基于screenfull封装组件:
<template>
<div>
<svg-icon
:icon="isFullscreen ? 'exit-fullscreen' : 'fullscreen'"
@click="onToggle"
/>
</div>
</template>
<script setup>
import { ref, onMounted, onUnmounted } from 'vue'
// 引入screenfull
import screenfull from 'screenfull'
// 是否全屏
const isFullscreen = ref(false)
// 监听变化
const change = () => {
isFullscreen.value = screenfull.isFullscreen
}
// 切换事件
const onToggle = () => {
screenfull.toggle()
}
// 监听screenfull的change事件
onMounted(() => {
screenfull.on('change', change)
})
// 移除screenfull的change事件
onUnmounted(() => {
screenfull.off('change', change)
})
</script>
<style lang="scss" scoped></style>
使用该组件:
<screenfull class="right-menu-item hover-effect" />
import Screenfull from '@/components/Screenfull'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix