当前位置:首页 > React

react全屏实现

2026-01-26 11:17:22React

使用浏览器全屏API实现

React中可以通过调用浏览器的全屏API实现全屏功能。需要获取DOM元素引用,调用requestFullscreen方法。

import { useRef } from 'react';

function FullScreenComponent() {
  const elementRef = useRef(null);

  const handleFullScreen = () => {
    if (elementRef.current) {
      if (elementRef.current.requestFullscreen) {
        elementRef.current.requestFullscreen();
      } else if (elementRef.current.webkitRequestFullscreen) { /* Safari */
        elementRef.current.webkitRequestFullscreen();
      } else if (elementRef.current.msRequestFullscreen) { /* IE11 */
        elementRef.current.msRequestFullscreen();
      }
    }
  };

  return (
    <div ref={elementRef}>
      <button onClick={handleFullScreen}>进入全屏</button>
    </div>
  );
}

使用第三方库react-full-screen

安装react-full-screen库可以简化全屏实现:

npm install react-full-screen

使用示例:

import { useFullScreenHandle } from 'react-full-screen';

function App() {
  const handle = useFullScreenHandle();

  return (
    <div>
      <button onClick={handle.enter}>进入全屏</button>
      <button onClick={handle.exit}>退出全屏</button>

      {handle.active ? (
        <div className="full-screenable-node" style={{ background: 'black' }}>
          全屏内容
          <button onClick={handle.exit}>退出</button>
        </div>
      ) : (
        <div>普通模式内容</div>
      )}
    </div>
  );
}

全屏状态监听

可以通过事件监听全屏状态变化:

useEffect(() => {
  const handleChange = () => {
    console.log('全屏状态变化:', document.fullscreenElement !== null);
  };

  document.addEventListener('fullscreenchange', handleChange);

  return () => {
    document.removeEventListener('fullscreenchange', handleChange);
  };
}, []);

样式注意事项

全屏模式下CSS需要特殊处理:

:-webkit-full-screen {
  background-color: yellow;
}

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

:-ms-fullscreen {
  background-color: yellow;
}

:fullscreen {
  background-color: yellow;
}

移动端兼容处理

移动设备可能需要添加元标签:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>

某些移动浏览器需要手势触发全屏,不能直接通过代码调用。

react全屏实现

标签: 全屏react
分享给朋友:

相关文章

react如何取消渲染

react如何取消渲染

取消渲染的方法 在React中,取消渲染通常指的是在某些条件下阻止组件渲染或中断正在进行的渲染过程。以下是几种常见的方法: 条件渲染 通过条件判断决定是否渲染组件或部分内容。可以使用if语句或三元…

vue 实现全屏

vue 实现全屏

Vue 实现全屏的方法 使用浏览器原生 API 现代浏览器提供了 requestFullscreen API 来实现全屏功能。在 Vue 中可以通过调用该 API 实现全屏。 // 进入全屏 fun…

react如何开发组件

react如何开发组件

React 组件开发基础 React 组件分为函数组件和类组件两种形式。函数组件是现代 React 开发的主流方式,结合 Hooks 可以实现完整功能。 函数组件示例: function Gree…

react如何更新

react如何更新

更新 React 版本的方法 检查当前 React 版本 运行以下命令查看项目中安装的 React 版本: npm list react 更新 React 及相关依赖 通过 npm 或 yar…

如何下载react

如何下载react

下载 React 的方法 通过 npm 或 yarn 安装 React 可以通过包管理器 npm 或 yarn 安装。确保已安装 Node.js(包含 npm),然后在项目目录中运行以下命令:…

react如何衰减

react如何衰减

React 中的动画衰减效果实现 在 React 中实现衰减效果(如滚动衰减、拖动释放后的惯性滑动)通常需要结合物理动画原理或第三方动画库。以下是几种常见方法: 使用 CSS 动画和 @keyfra…