当前位置:首页 > JavaScript

js实现火狐全屏

2026-03-16 05:32:26JavaScript

火狐浏览器全屏API实现

火狐浏览器支持使用标准的Fullscreen API实现全屏功能。以下为JavaScript代码示例:

js实现火狐全屏

// 触发全屏
function requestFullscreen(element) {
  if (element.requestFullscreen) {
    element.requestFullscreen();
  } else if (element.mozRequestFullScreen) { // Firefox专用前缀
    element.mozRequestFullScreen();
  } else if (element.webkitRequestFullscreen) {
    element.webkitRequestFullscreen();
  } else if (element.msRequestFullscreen) {
    element.msRequestFullscreen();
  }
}

// 退出全屏
function exitFullscreen() {
  if (document.exitFullscreen) {
    document.exitFullscreen();
  } else if (document.mozCancelFullScreen) { // Firefox专用前缀
    document.mozCancelFullScreen();
  } else if (document.webkitExitFullscreen) {
    document.webkitExitFullscreen();
  } else if (document.msExitFullscreen) {
    document.msExitFullscreen();
  }
}

// 检测全屏状态
function isFullscreen() {
  return document.fullscreenElement || 
         document.mozFullScreenElement ||
         document.webkitFullscreenElement || 
         document.msFullscreenElement;
}

// 全屏切换事件监听
document.addEventListener('fullscreenchange', handleFullscreenChange);
document.addEventListener('mozfullscreenchange', handleFullscreenChange); // Firefox专用事件
document.addEventListener('webkitfullscreenchange', handleFullscreenChange);
document.addEventListener('MSFullscreenChange', handleFullscreenChange);

function handleFullscreenChange() {
  console.log('全屏状态变化:', isFullscreen());
}

实际应用示例

为按钮添加全屏切换功能:

js实现火狐全屏

document.getElementById('fullscreen-btn').addEventListener('click', function() {
  if (!isFullscreen()) {
    requestFullscreen(document.documentElement); // 整个页面全屏
    // 或指定元素 requestFullscreen(document.getElementById('target'))
  } else {
    exitFullscreen();
  }
});

注意事项

火狐浏览器需要用户手势触发全屏请求,不能通过异步回调或定时器自动触发。直接执行requestFullscreen()会因安全限制失败。

全屏样式可通过CSS伪类控制:

:-moz-full-screen { background: white; } /* Firefox专用 */
:-webkit-full-screen { background: white; }
:-ms-fullscreen { background: white; }
:fullscreen { background: white; }

兼容性说明

现代火狐浏览器已支持无前缀的Fullscreen API,但保留moz前缀实现向后兼容。建议同时实现标准API和各浏览器前缀版本以确保兼容性。

标签: 火狐全屏
分享给朋友:

相关文章

vue实现全屏事件

vue实现全屏事件

Vue 实现全屏事件的方法 在 Vue 中实现全屏功能可以通过浏览器提供的 Fullscreen API 来实现。以下是几种常见的实现方式: 使用原生 Fullscreen API 通过调用 Ele…

vue实现全屏切换

vue实现全屏切换

实现全屏切换的基本方法 使用 Vue 实现全屏切换可以通过浏览器提供的 Fullscreen API 来实现。以下是一个完整的实现方案。 安装必要的依赖(如需要) npm install scre…

vue实现页面全屏

vue实现页面全屏

Vue 实现页面全屏的方法 使用浏览器原生 Fullscreen API 在 Vue 中可以通过调用浏览器的原生 Fullscreen API 实现全屏功能。以下是一个简单的实现示例: // 在 V…

vue点击局部实现全屏

vue点击局部实现全屏

实现局部全屏的方法 在Vue中实现局部全屏可以通过浏览器的Fullscreen API来完成。以下是一个完整的实现方案。 安装依赖 确保项目环境中已经安装了Vue。如果使用Vue 3,可以通过以下命…

react实现页面全屏展示

react实现页面全屏展示

使用 Fullscreen API 实现全屏 React 中可以通过调用浏览器原生 Fullscreen API 实现全屏功能。需要获取 DOM 元素引用并调用相应方法。 import { useR…

react页面实现全屏滚动

react页面实现全屏滚动

实现全屏滚动的 React 方案 使用 react-full-page 库 安装 react-full-page 库: npm install react-full-page 示例代码: impo…