ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

scrennfull全屏

2022-04-22 20:00:13  阅读:146  来源: 互联网

标签:const scrennfull API 全屏 import screenfull change


原理

对于 screenfull 而言,浏览器本身已经提供了对用的 API,点击这里即可查看,这个 API 中,主要提供了两个方法:

  1. Document.exitFullscreen():该方法用于请求从全屏模式切换到窗口模式
  2. 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有