vue 使用screenfull.js,退出全屏时不能监控到首次按下esc

需求:只在看板页面时,全屏时,导航栏隐藏;取消全屏时,导航栏显示。
取消全屏时监听esc

mounted() {
    //添加键盘Esc事件
    this.$nextTick(() => {
      document.addEventListener("keyup", e => {
        if (e.keyCode == 27) {
          this.changeMethodf(); //事件名
        }
      });
    });
  },

存在问题:首次按下esc虽然退出全屏,但是监听不到。第二次按下esc才能监听到
继续找解决办法,发现:
screenfull.isFullscreen是可以判断是否为全屏状态的

    click() {
      if (!screenfull.enabled) {
        this.$message({
          message: "you browser can not work",
          type: "warning"
        });
        return false;
      } else {
        screenfull.toggle();
        if (this.$route.name == "repairTaskKanban") {
          screenfull.on("change", () => {
            if (screenfull.isFullscreen) {
              // console.log("全屏时,要执行的操作")
              document.getElementsByClassName(
                "navbar"
              )[0].style.display = "none";
            } else {
              // console.log("取消全屏时,要执行的操作")
              document.getElementsByClassName(
                "navbar"
              )[0].style.display = "block";
            }
          });
        }
      }
    }

附:浏览器全屏插件screenfull.js与全屏状态监听使用方法:https://www.jianshu.com/p/cfbb13c32c9c
最后,感谢博主「weixin_41243385」的博客指点迷津

你可能感兴趣的:(vue)