vue 项目全屏插件screenfull使用案例

 更新时间:2023年12月21日 14:46:55   作者:weixin_45665171  
这篇文章主要介绍了vue 项目全屏插件screenfull使用案例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

一、使用screenfull插件

1. npm安装screenfull插件

npm install screenfull --save

提示:在vue项目中导入screenfull插件,出现编译错误,错误如图所示:

原因分析:
安装的screenfull插件版本过高
解决方法:
降低插件版本

npm install screenfull@4.2.0 --save

2. 在vue文件中引入screenfull插件

import screenfull from 'screenfull'

3. vue文件demo

<template>
  <div>
    <ul>
      <li @click="clickFun">{{isFullFlag?'退出全屏':'全屏'}}</li>
      <li @click="clickFun1">{{isFullFlag1?'退出部分全屏':'部分全屏'}}</li>
    </ul>
    <!--需要全屏展示的内容-->
    <div id="content"></div>
  </div>
</template>
<script>
import screenfull from 'screenfull'
export default {
  name: "HelloWorld",
  data() {
    return {
      isFullFlag: false,
      isFullFlag1: false,
    }
  },
  mounted() {
    // 监听页面全屏
    window.addEventListener("fullscreenchange", (e) => {
      console.log(screenfull.isFullscreen)
      this.isFullFlag = screenfull.isFullscreen
    })
  },
  methods: {
    clickFun() {
      this.isFullFlag = !this.isFullFlag
      console.log(screenfull)
      if (!screenfull.enabled) {
        this.$message({
          message: 'Your browser does not work',
          type: 'warning'
        })
        return false
      }
      screenfull.toggle()
    },
    clickFun1() {
      this.isFullFlag1 = !this.isFullFlag1
      const element = document.getElementById('content');//指定全屏区域元素
      if (this.isFullFlag1) {
        // screenfull.request(element);
        element.requestFullscreen()
      } else {
        document.exitFullscreen();
      }
    },
  },
};
</script>

4. 监听F11和手动的全屏、退出全屏事件

<i class="i_icon el-icon-full-screen" @click="isScreenFull"></i>
import screenfull from 'screenfull'
mounted() {
  this.screenFull();
},
methods: {
  //监听Esc事件;
  screenFull() {
    //监听f11事件
    window.addEventListener("keydown", this.KeyDown, true);
    //这些监听,可以监听到esc按键按下导致的全屏变化,但是监听不到F11的打开全屏的变化,isScreenFull
    document.addEventListener("fullscreenchange", () => {
      this.isFullscreen = !this.isFullscreen;//你要切换得图标使用得属性
    });
    document.addEventListener("mozfullscreenchange", () => {
      this.isFullscreen = !this.isFullscreen;
    });
    document.addEventListener("webkitfullscreenchange", () => {
      this.isFullscreen = !this.isFullscreen;
    });
    document.addEventListener("msfullscreenchange", () => {
      this.isFullscreen = !this.isFullscreen;
    });
  },
  KeyDown(event) {
    if (event.keyCode === 122) {
      event.returnValue = false;
      this.isScreenFull(); //触发全屏的方法
    }
  },
  //全屏方法
  isScreenFull() {
    if (!screenfull.isEnabled) {
      return false;
    }
    // 这个方法会请求全屏,如果当前是全屏则会退出全屏。
    // 无需自己再判断当前屏幕状态
    screenfull.toggle();
  },
}

二、快速了解screenfull插件

点击了解screenfull插件

1. 使用方法

  • 首先安装 npm install screenfull --save
  • 在使用.vue文件中 引入 import screenfull from ‘screenfull’
  • 在按钮方法中调用 screenfull.toggle()
  • 还可以检测全屏状态 screenfull.isFullscreen
  • 测试浏览器是否支持全screenfull screenfull.isEnabled

2. API

  • .request(ele) 全屏
  • .exit() 退出全屏
  • .toggle() 切换全屏
  • .on(event, function) : event为 ‘change’ | ‘error’ 注册事件
  • .off(event, function) : 移除前面已经注册的事件
  • .element: 返回一个全屏的dom节点,如果没有就为 null
  • .isFullscreen : 是否是全屏状态
  • .isEnabled : 判断是否支持全屏

3. 使用注意事项

  • requestFullscreen方法只能由用户触发。
  • 页面跳转需先退出全屏
  • 进入全屏的元素,将脱离其父元素,所以可能导致之前某些css的失效
  • 解决方案:使用 :full-screen伪类 为元素添加全屏时的样式(使用时为了兼容注意添加-webkit、-moz或-ms前缀)
  • 我这里是使用原生的方法修改了css
  • 一个元素A全屏后,其子元素要再全屏,需先让元素A退出全屏

到此这篇关于vue 项目设置全屏,使用screenfull插件的文章就介绍到这了,更多相关vue设置全屏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Vue 事件修饰符capture 的使用

    详解Vue 事件修饰符capture 的使用

    capture事件修饰符的作用是给元素添加一个监听器,当元素发生冒泡时,先触发带有该修饰符的元素。这篇文章给大家介绍了Vue 事件修饰符capture 的使用,需要的朋友参考下吧
    2017-12-12
  • vue在自定义组件中使用v-model进行数据绑定的方法

    vue在自定义组件中使用v-model进行数据绑定的方法

    这篇文章主要介绍了vue在自定义组件中使用v-model进行数据绑定的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Vant2移动端Vue组件库问题记录

    Vant2移动端Vue组件库问题记录

    Vant是一套轻量、可靠的移动端组件库,通过Vant可以快速搭建出风格统一的页面,提升开发效率,下面这篇文章主要给大家介绍了关于Vant2移动端Vue组件库问题的相关资料,需要的朋友可以参考下
    2023-01-01
  • Vue Cli3 打包配置并自动忽略console.log语句的方法

    Vue Cli3 打包配置并自动忽略console.log语句的方法

    这篇文章主要介绍了Vue Cli3 打包配置并自动忽略console.log语句的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 详解vuex状态管理模式

    详解vuex状态管理模式

    这篇文章主要介绍了详解vuex状态管理模式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • vue+element加入签名效果(移动端可用)

    vue+element加入签名效果(移动端可用)

    这篇文章主要介绍了vue+element加入签名效果(移动端),本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • 详解key在Vue列表渲染时究竟起到了什么作用

    详解key在Vue列表渲染时究竟起到了什么作用

    这篇文章主要介绍了key在Vue列表渲染时究竟起到了什么作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • mpvue开发音频类小程序踩坑和建议详解

    mpvue开发音频类小程序踩坑和建议详解

    这篇文章主要介绍了mpvue开发音频类小程序踩坑和建议详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • vue3 vite pinia配置动态路由、解决刷新页面路由消失的问题

    vue3 vite pinia配置动态路由、解决刷新页面路由消失的问题

    这篇文章主要介绍了vue3 vite pinia配置动态路由、解决刷新页面路由消失的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • element ui watch el-input赋值之后无法删除或修改问题

    element ui watch el-input赋值之后无法删除或修改问题

    这篇文章主要介绍了element ui watch el-input赋值之后无法删除或修改问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02

最新评论