当前位置:首页 > JavaScript

js实现火狐全屏

2026-03-16 05:32:26JavaScript

火狐浏览器全屏API实现

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

// 触发全屏
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());
}

实际应用示例

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

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

注意事项

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

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

js实现火狐全屏

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

vue页面实现全屏功能

vue页面实现全屏功能

实现全屏功能的方法 在Vue中实现全屏功能可以通过浏览器提供的Fullscreen API完成。以下是几种常见的实现方式: 使用原生Fullscreen API // 进入全屏 function e…

vue中怎么实现全屏

vue中怎么实现全屏

实现全屏的基本方法 在Vue中实现全屏功能可以使用浏览器提供的Fullscreen API。以下是一个简单的实现方式: // 进入全屏 function enterFullscreen(elemen…

vue 实现全屏弹层

vue 实现全屏弹层

实现全屏弹层的基本思路 使用 Vue 实现全屏弹层需要结合 CSS 定位和 Vue 的组件化特性。弹层通常需要覆盖整个视口,并置于其他内容之上。 HTML 结构示例 在 Vue 模板中,弹层通常是一…

vue实现pc全屏滚动

vue实现pc全屏滚动

实现PC全屏滚动的Vue方案 全屏滚动效果通常指页面按整屏高度分块,滚动时自动吸附到最近的区块。以下是基于Vue的实现方法: 使用vue-fullpage.js库 安装vue-fullpage.js…

vue动画实现全屏滚动

vue动画实现全屏滚动

实现全屏滚动动画的Vue方案 使用vue-fullpage.js插件 安装vue-fullpage.js插件能快速实现全屏滚动效果: npm install vue-fullpage.js 注册插件…