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'
标签:const,scrennfull,API,全屏,import,screenfull,change 来源: https://www.cnblogs.com/JianXin1994/p/16180348.html