1.安装插件

npm install screenfull --save

2.在你要使用的页面,引入

import screenfull from "screenfull";

注意:如果运行报错,需要降低screenfull的插件版本,比如直接下载指定版本:

npm install --save-dev screenfull@5.1.0

3.区分插件的属性值去判断浏览器是否全屏:

//属性值
screenfull.isFullscreen; // 布尔值——当前页面是否全屏
screenfull.isEnabled; // 布尔值——当前浏览器是否支持全屏

//事件效果
screenfull.request(); // 全屏
screenfull.exit(); // 退出全屏
screenfull.toggle(); // 全屏切换

4.引用到你的代码中去(示例)(同时绑定F11和Esc按键全屏的联动效果,使切换同步):

 //html部分:
 <button  @click="fullScreenFun">{{screenfullName}}</button>

 //js部分

 //定义属性值:
 return {
   screenfullName: "全屏",
 }

 //切换全屏逻辑:
 mounted() {
    //全屏之后,无法监听到键盘按键的点击事件,所以只能监听窗口的变化进行判断
    window.onresize = () => {
      if (!screenfull.isFullscreen) {
        this.screenfullName = "全屏";//判断退出全屏,进行赋值
      }
    };
    this.screenFull(); //监听Esc按键
 }
 methods: {
    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) {
      //F11按键触发全屏事件
      if (event.keyCode === 122) {
        event.returnValue = false;
        this.fullScreenFun(); //调用触发全屏的方法
      }
    },
    fullScreenFun() {
      // 如果不允许进入全屏,发出不允许提示
      if (!screenfull.isEnabled) {
        alert("您的浏览器不能全屏");
        return false;
      }
      //判断是否为全屏状态
      if (!screenfull.isFullscreen) {
        this.screenfullName = "退出全屏";
      } else {
        this.screenfullName = "全屏";
      }
      //执行切换事件
      screenfull.toggle();
    },
  }



GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891 Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐