html5+ React -进入和退出全屏实现

本文详细介绍了HTML5的全屏API在不同浏览器中的实现和兼容方案,包括进入、退出全屏的方法,全屏状态的检查,以及在React中应用全屏功能的示例代码。需要注意的是,全屏效果通常需在用户交互后触发,以避免用户困惑。文中还提供了一个全屏按钮的完整例子,并讨论了全屏状态的CSS样式控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

html5已经支持全屏API,不同浏览器实现方式不一,以下为兼容方案:

一、不同浏览器的进入和退出全屏实现

// Webkit (works in Safari5.1 and Chrome 15)
element.webkitRequestFullScreen();
document.webkitCancelFullScreen();

// Firefox 10+
element.mozRequestFullScreen();
document.mozCancelFullScreen();

// W3C 提议
element.requestFullscreen();
document.exitFullscreen();

二、全屏兼容方案

function requestFullScreen() {
   
   
     var de = document.documentElement;
     if (de.requestFullscreen) {
         de.requestFullscreen();
     } else if (de.mozRequestFullScreen) {
         de.mozRequestFullScreen();
     } else if (de.webkitRequestFullScreen) {
         de.webkitRequestFullScreen();
     }
 }

三、退出全屏兼容方案

 function exitFullscreen() {
   
   
     var de = document;
     if (de.exitFullscreen) {
         de.exitFullscreen();
     } else if (de.mozCancelFullScreen) {
         de.mozCancelFullScreen();
     
E:\work\project\dd\yai-webui>npm list react react-dom @vitejs/plugin-react yai-webui@0.0.1 E:\work\project\dd\yai-webui +-- @vitejs/plugin-react@4.4.1 +-- antd@5.25.1 | +-- @ant-design/cssinjs-utils@1.1.3 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- @ant-design/cssinjs@1.23.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- @ant-design/icons@5.6.1 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- @ant-design/react-slick@1.1.2 | | `-- react@19.1.0 deduped | +-- @rc-component/color-picker@2.0.1 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- @rc-component/mutate-observer@1.1.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- @rc-component/qrcode@1.0.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- @rc-component/tour@1.15.1 | | +-- @rc-component/portal@1.1.2 | | | +-- react-dom@19.1.0 deduped | | | `-- react@19.1.0 deduped | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- @rc-component/trigger@2.2.6 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-cascader@3.34.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-checkbox@3.5.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-collapse@3.9.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-dialog@9.6.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-drawer@7.2.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-dropdown@4.2.1 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-field-form@2.7.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-image@7.12.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-input-number@9.5.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-input@1.8.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-mentions@2.20.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-menu@9.16.1 | | +-- rc-overflow@1.4.1 | | | +-- react-dom@19.1.0 deduped | | | `-- react@19.1.0 deduped | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-motion@2.9.5 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-notification@5.6.4 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-pagination@5.1.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-picker@4.11.3 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-progress@4.0.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-rate@2.13.1 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-resize-observer@1.4.3 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-segmented@2.7.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-select@14.16.7 | | +-- rc-virtual-list@3.18.6 | | | +-- react-dom@19.1.0 deduped | | | `-- react@19.1.0 deduped | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-slider@11.1.8 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-steps@6.0.1 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-switch@4.1.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-table@7.50.5 | | +-- @rc-component/context@1.4.0 | | | +-- react-dom@19.1.0 deduped | | | `-- react@19.1.0 deduped | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-tabs@15.6.1 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-textarea@1.10.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-tooltip@6.4.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-tree-select@5.27.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-tree@5.13.1 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-upload@4.9.0 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- rc-util@5.44.4 | | +-- react-dom@19.1.0 deduped | | `-- react@19.1.0 deduped | +-- react-dom@19.1.0 deduped | `-- react@19.1.0 deduped +-- react-dom@19.1.0 | `-- react@19.1.0 deduped +-- react-vue@0.0.5 | `-- react@19.1.0 deduped +-- react@19.1.0 +-- veaury@2.6.2 | +-- react-dom@19.1.0 deduped | `-- react@19.1.0 deduped `-- vuera@0.2.7 +-- react-dom@19.1.0 deduped `-- react@19.1.0 deduped
最新发布
05-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值