当前位置:首页 > 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;
}

移动端兼容处理

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

react全屏实现

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

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

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

相关文章

react如何发音

react如何发音

React的发音 React的正确发音为 /riˈækt/,类似于“ree-akt”。以下是详细说明: 发音分解 第一个音节“Ree”发音类似英文单词“see”中的“ee”音。…

react如何启动

react如何启动

启动 React 项目的步骤 确保已安装 Node.js React 需要 Node.js 环境运行,建议安装最新稳定版(LTS)。可通过以下命令检查是否已安装: node -v npm -v…

react 如何操作cookie

react 如何操作cookie

安装依赖 在React项目中操作cookie通常需要第三方库的支持,推荐使用js-cookie。通过npm或yarn安装: npm install js-cookie # 或 yarn add js…

react如何同步修改

react如何同步修改

同步修改状态的常见方法 在React中同步修改状态通常涉及使用useState或useReducer钩子,结合React的批处理机制确保状态更新的一致性。以下是几种典型场景的解决方案: 直接使用us…

react如何滚动scroll

react如何滚动scroll

React 实现滚动的方法 使用 useRef 和 scrollTo 方法 通过 useRef 获取 DOM 元素的引用,调用 scrollTo 方法实现滚动。 import React, { us…

小白如何搭建react

小白如何搭建react

安装 Node.js 和 npm 确保系统已安装 Node.js(包含 npm)。可通过官网下载安装包(https://nodejs.org/),选择 LTS 版本。安装完成后,终端运行以下命令验证版…