React全屏监听Esc键

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

React全屏监听Esc键

咕咚咕咚咚   2022-09-28 我要评论

全屏监听Esc键

全屏与退出全屏

if (isFull) {
      document.exitFullscreen();
    } else {
      tree.current.requestFullscreen();
      tree.current.style.width = '100%'
    }
  };

监听退出全屏事件

退出方式有两种:

  • 1.通过上面的requestFullscreen。
  • 2.通过按esc退出

问题:通过requestFullscreen操作可以修改数据状态,但当用户按esc键时,是监听不到的。

采用如下方式: 

const escFunction = () => {
   setFull((prevFill) => !prevFill); 
}
 
useEffect(() => {
    // 监听退出全屏事件 --- chrome 用 esc 退出全屏并不会触发 keyup 事件
    document.addEventListener("webkitfullscreenchange", escFunction); /* Chrome, Safari and Opera */
    document.addEventListener("mozfullscreenchange", escFunction); /* Firefox */
    document.addEventListener("fullscreenchange", escFunction); /* Standard syntax */
    document.addEventListener("msfullscreenchange", escFunction); /* IE / Edge */
    return () => {
    //销毁时清除监听
      document.removeEventListener("webkitfullscreenchange", escFunction);
      document.removeEventListener("mozfullscreenchange", escFunction);
      document.removeEventListener("fullscreenchange", escFunction);
      document.removeEventListener("MSFullscreenChange", escFunction);
    }
  }, []);

React添加监听事件 监听键盘事件

react添加监听事件监听键盘事件

参考:

记录下确认框confirm代码:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们