js 进入浏览器全屏(F11效果)、退出全屏、指定元素全屏、判断当前是否全屏、监听浏览器全屏事件、定义全屏时的css样式(全屏伪类)

简介: js 进入浏览器全屏(F11效果)、退出全屏、指定元素全屏、判断当前是否全屏、监听浏览器全屏事件、定义全屏时的css样式(全屏伪类)

各部分功能代码详见注释:

<template>
  <div>
    <button v-if="!ifFullScreen" @click="fullScreenPage">整个页面全屏</button>
    <button v-if="ifFullScreen" @click="exitFullScreen">退出全屏</button>
    <button @click="fullScreenPart('fatherID')">指定元素全屏</button>
    <div class="box" id="fatherID"></div>
  </div>
</template>

<script>
export default {
  mounted() {
    // 监听浏览器全屏事件
    let that = this;
    document.addEventListener("fullscreenchange", function() {
      that.getFullScreenStatus();
    });

    document.addEventListener("mozfullscreenchange", function() {
      that.getFullScreenStatus();
    });

    document.addEventListener("webkitfullscreenchange", function() {
      that.getFullScreenStatus();
    });

    document.addEventListener("msfullscreenchange", function() {
      that.getFullScreenStatus();
    });
  },
  data() {
    return {
      ifFullScreen: false,
    };
  },
  methods: {
    // 整个页面全屏
    fullScreenPage() {
      fullScreen(document.documentElement);
    },
    // 指定元素全屏——指定元素必须设置id,且全屏函数只对id获取元素有效
    fullScreenPart(id) {
      let el = document.getElementById(id);
      fullScreen(el);
    },
    // 退出全屏
    exitFullScreen() {
      exitFullScreen(document.documentElement);
    },
    // 判断当前页面是否全屏
    getFullScreenStatus() {
      this.ifFullScreen = !!(
        document.fullscreen ||
        document.mozFullScreen ||
        document.webkitIsFullScreen ||
        document.webkitFullScreen ||
        document.msFullScreen
      );
    },
  },
};

// 进入全屏
function fullScreen(el) {
  var rfs =
      el.requestFullScreen ||
      el.webkitRequestFullScreen ||
      el.mozRequestFullScreen ||
      el.msRequestFullScreen,
    wscript;
  if (typeof rfs != "undefined" && rfs) {
    rfs.call(el);
    return;
  }
  if (typeof window.ActiveXObject != "undefined") {
    wscript = new ActiveXObject("WScript.Shell");
    if (wscript) {
      wscript.SendKeys("{F11}");
    }
  }
}
// 退出全屏
function exitFullScreen(el) {
  var el = document,
    cfs =
      el.cancelFullScreen ||
      el.webkitCancelFullScreen ||
      el.mozCancelFullScreen ||
      el.exitFullScreen,
    wscript;
  if (typeof cfs != "undefined" && cfs) {
    cfs.call(el);
    return;
  }
  if (typeof window.ActiveXObject != "undefined") {
    wscript = new ActiveXObject("WScript.Shell");
    if (wscript != null) {
      wscript.SendKeys("{F11}");
    }
  }
}
</script>

<style scoped>
.box {
  height: 200px;
  width: 100px;
  background: green;
}

/*全屏伪类:当元素处于全屏时,改变元素的背景色*/
.box:-webkit-full-screen {
  background-color: yellow;
}

.box:-moz-full-screen {
  background-color: yellow;
}

.box:fullscreen {
  background-color: yellow;
}
</style>

目录
相关文章
|
1天前
|
JavaScript 前端开发 容器
vue组件封装——固定宽高比的容器(2种方法:纯CSS实现 + JS实现)
vue组件封装——固定宽高比的容器(2种方法:纯CSS实现 + JS实现)
7 2
|
2天前
|
JavaScript
vue 全局响应键盘按键/监听键盘事件(含 js 获取键盘keyCode值的方法)
vue 全局响应键盘按键/监听键盘事件(含 js 获取键盘keyCode值的方法)
10 2
|
2天前
|
JavaScript 前端开发
vue 模拟随机变速的动态打字特效【支持多行文本】(含css实现闪烁光标,js动态改变setInterval定时器的时间间隔)
vue 模拟随机变速的动态打字特效【支持多行文本】(含css实现闪烁光标,js动态改变setInterval定时器的时间间隔)
6 1
|
14小时前
|
前端开发 JavaScript
文本,wangEditor5展示HTML无样式,wangEditor5如何看源码,Ctrl + U看CSS文件,代码高亮,Prism.js可以实现,解决方法,参考网页源代码的写法
文本,wangEditor5展示HTML无样式,wangEditor5如何看源码,Ctrl + U看CSS文件,代码高亮,Prism.js可以实现,解决方法,参考网页源代码的写法
|
1天前
|
JavaScript 前端开发 UED
|
1天前
|
前端开发 JavaScript
【HTML+CSS+JavaScript】3d-boxes-background
【HTML+CSS+JavaScript】3d-boxes-background
4 0
|
8天前
|
安全 JavaScript
旋转木马轮播图 html+css+js
旋转木马轮播图 html+css+js
|
7天前
|
移动开发 前端开发 JavaScript
HTML5+CSS3+JavaScript网页实战
HTML5+CSS3+JavaScript网页实战
|
12天前
|
前端开发
HTML+CSS练习小项目——百叶窗
HTML+CSS练习小项目——百叶窗
|
10天前
|
XML 前端开发 JavaScript
HTML、CSS、JavaScript有什么区别
HTML、CSS、JavaScript有什么区别