• js监听F11触发全屏事件


    当用户使用 F11 键进行浏览器全屏时,由于此时并非通过浏览器提供的 Fullscreen API 进入全屏模式,因此无法通过 fullscreenchange 事件来监听全屏状态的变化。在这种情况下,可以通过监听 resize 事件来检测浏览器窗口大小的变化,从而判断是否处于全屏模式。

    下面是一个示例代码,演示如何通过监听 resize 事件来检测 F11 全屏操作:

    1. let isFullScreen = false;
    2. function checkFullScreen() {
    3. const fullscreenElement = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement || ( window.innerHeight === screen.height);
    4. if (fullscreenElement) {
    5. isFullScreen = true;
    6. console.log("进入全屏模式");
    7. } else {
    8. isFullScreen = false;
    9. console.log("退出全屏模式");
    10. }
    11. }
    12. // 监听 resize 事件来检测全屏状态的变化
    13. window.addEventListener("resize", checkFullScreen);
    14. // 页面加载完毕,初始化全屏状态
    15. window.addEventListener("load", checkFullScreen);

    在上面的代码中,我们定义了一个 checkFullScreen 函数来检测全屏状态,并在页面加载完成时和窗口大小变化时调用该函数。通过不断检测当前是否存在全屏元素,我们可以实现对 F11 全屏操作的监听和处理。

    Vue 中,可以在组件的生命周期钩子函数中添加监听和移除事件监听。例如,可以在 mounted 钩子函数中添加监听事件,在 beforeDestroy 钩子函数中移除监听事件。这样可以确保在组件销毁时正确地清除事件监听,避免内存泄漏和性能问题。

    下面是一个示例代码,演示如何在 Vue 中监听窗口大小变化事件并在组件销毁时移除监听:

    1. export default {
    2. mounted() {
    3. // 添加窗口大小变化事件监听
    4. window.addEventListener("resize", this.checkFullScreen);
    5. window.addEventListener("load", this.checkFullScreen); // 也可以在这里初始化全屏状态
    6. },
    7. beforeDestroy() {
    8. // 移除窗口大小变化事件监听
    9. window.removeEventListener("resize", this.checkFullScreen);
    10. window.removeEventListener("load", this.checkFullScreen);
    11. },
    12. methods: {
    13. checkFullScreen() {
    14. const isBrowserFullScreen = window.innerHeight === screen.height;
    15. if (isBrowserFullScreen) {
    16. console.log("进入全屏模式");
    17. } else {
    18. console.log("退出全屏模式");
    19. }
    20. }
    21. }
    22. };

    在上面的代码中,我们在 Vue 组件中使用 mounted 钩子函数添加窗口大小变化事件监听,在 beforeDestroy 钩子函数中移除监听。同时,我们还提供了一个 checkFullScreen 方法用来检测全屏状态。

  • 相关阅读:
    CSharp的lambda表达式匿名类扩展方法
    计算机毕业设计Java自行车在线租赁管理系统2021(源码+系统+mysql数据库+Lw文档)
    Vue入门
    Rust(1) 简介和安装
    池风水利用工具
    ExtJS-内置字体图标(Font)
    ts工具类
    【Java】解决Java报错:IllegalArgumentException
    linux安装opencv
    第06章 第06章 查找
  • 原文地址:https://blog.csdn.net/lyj168997/article/details/136372614