js怎么实现全屏显示

来源:网站主作者:重启一下头衔:草根站长
导读:本期聚焦于小伙伴创作的《js怎么实现全屏显示》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《js怎么实现全屏显示》有用,将其分享出去将是对创作者最好的鼓励。

在网页开发中,实现全屏显示是很多场景的刚需,比如视频播放页面、在线文档编辑、大屏数据展示等,使用JavaScript配合浏览器原生的Fullscreen API就可以完成全屏相关的所有操作,不过需要注意不同浏览器的兼容性处理。

js怎么实现全屏显示

全屏API的核心方法和属性

Fullscreen API提供了几个核心的方法用于操作全屏状态,不同浏览器在旧版本中可能存在前缀差异,常见的适配前缀有webkitmozms,实际开发中需要先做兼容处理。

1. 进入全屏的方法

进入全屏需要调用指定元素的全屏请求方法,通常是requestFullscreen,不同浏览器前缀对应的方法名如下:

  • 标准方法:Element.requestFullscreen()
  • webkit内核浏览器:Element.webkitRequestFullscreen()
  • moz内核浏览器:Element.mozRequestFullScreen()
  • ms内核浏览器:Element.msRequestFullscreen()

2. 退出全屏的方法

退出全屏需要调用文档对象的退出全屏方法,标准方法是document.exitFullscreen(),同样存在前缀差异:

  • 标准方法:document.exitFullscreen()
  • webkit内核浏览器:document.webkitExitFullscreen()
  • moz内核浏览器:document.mozCancelFullScreen()
  • ms内核浏览器:document.msExitFullscreen()

3. 全屏状态相关属性

可以通过document.fullscreenElement判断当前是否处于全屏状态,该属性返回当前处于全屏状态的元素,如果为null则表示没有元素处于全屏状态。同样存在前缀差异:

  • 标准属性:document.fullscreenElement
  • webkit内核浏览器:document.webkitFullscreenElement
  • moz内核浏览器:document.mozFullScreenElement
  • ms内核浏览器:document.msFullscreenElement

兼容处理工具函数

为了统一不同浏览器的差异,我们可以先封装几个工具函数,后续直接使用这些函数操作全屏,不需要每次都判断前缀。

// 获取带有兼容前缀的全屏请求方法
function getRequestFullscreen() {
  const element = document.documentElement; // 默认操作整个页面,也可以传入指定元素
  if (element.requestFullscreen) {
    return element.requestFullscreen;
  } else if (element.webkitRequestFullscreen) {
    return element.webkitRequestFullscreen;
  } else if (element.mozRequestFullScreen) {
    return element.mozRequestFullScreen;
  } else if (element.msRequestFullscreen) {
    return element.msRequestFullscreen;
  }
  return null;
}

// 获取带有兼容前缀的退出全屏方法
function getExitFullscreen() {
  if (document.exitFullscreen) {
    return document.exitFullscreen;
  } else if (document.webkitExitFullscreen) {
    return document.webkitExitFullscreen;
  } else if (document.mozCancelFullScreen) {
    return document.mozCancelFullScreen;
  } else if (document.msExitFullscreen) {
    return document.msExitFullscreen;
  }
  return null;
}

// 判断是否处于全屏状态
function isFullscreen() {
  if (document.fullscreenElement !== undefined) {
    return !!document.fullscreenElement;
  } else if (document.webkitFullscreenElement !== undefined) {
    return !!document.webkitFullscreenElement;
  } else if (document.mozFullScreenElement !== undefined) {
    return !!document.mozFullScreenElement;
  } else if (document.msFullscreenElement !== undefined) {
    return !!document.msFullscreenElement;
  }
  return false;
}

实现进入和退出全屏的完整示例

下面的示例会创建一个按钮,点击按钮可以切换全屏状态,进入全屏时按钮文字变为退出全屏,退出全屏时按钮文字变为进入全屏。

HTML结构

<div class="fullscreen-container">
  <h3>全屏显示测试页面</h3>
  <p>点击下方按钮可以切换全屏状态</p>
  <button id="fullscreenBtn">进入全屏</button>
</div>

CSS样式

.fullscreen-container {
  padding: 20px;
  text-align: center;
}

#fullscreenBtn {
  padding: 10px 20px;
  font-size: 16px;
  cursor: pointer;
  background-color: #409eff;
  color: white;
  border: none;
  border-radius: 4px;
}

#fullscreenBtn:hover {
  background-color: #337ecc;
}

JavaScript逻辑

// 获取按钮元素
const fullscreenBtn = document.getElementById('fullscreenBtn');

// 进入全屏的函数
function enterFullscreen() {
  const requestMethod = getRequestFullscreen();
  if (requestMethod) {
    // 调用方法时需要绑定上下文,因为是从对象上获取的方法
    requestMethod.call(document.documentElement).then(() => {
      console.log('进入全屏成功');
    }).catch((err) => {
      console.error('进入全屏失败:', err);
    });
  } else {
    alert('当前浏览器不支持全屏功能');
  }
}

// 退出全屏的函数
function exitFullscreen() {
  const exitMethod = getExitFullscreen();
  if (exitMethod) {
    exitMethod.call(document).then(() => {
      console.log('退出全屏成功');
    }).catch((err) => {
      console.error('退出全屏失败:', err);
    });
  }
}

// 按钮点击事件处理
fullscreenBtn.addEventListener('click', () => {
  if (isFullscreen()) {
    // 当前是全屏状态,执行退出全屏
    exitFullscreen();
  } else {
    // 当前不是全屏状态,执行进入全屏
    enterFullscreen();
  }
});

// 监听全屏状态变化,更新按钮文字
document.addEventListener('fullscreenchange', () => {
  fullscreenBtn.textContent = isFullscreen() ? '退出全屏' : '进入全屏';
});
// 兼容webkit内核的全屏状态变化事件
document.addEventListener('webkitfullscreenchange', () => {
  fullscreenBtn.textContent = isFullscreen() ? '退出全屏' : '进入全屏';
});
// 兼容moz内核的全屏状态变化事件
document.addEventListener('mozfullscreenchange', () => {
  fullscreenBtn.textContent = isFullscreen() ? '退出全屏' : '进入全屏';
});
// 兼容ms内核的全屏状态变化事件
document.addEventListener('MSFullscreenChange', () => {
  fullscreenBtn.textContent = isFullscreen() ? '退出全屏' : '进入全屏';
});

全屏相关的注意事项

  • 全屏请求必须由用户主动触发,比如点击按钮、触摸事件等,不能在页面加载完成后自动调用,否则浏览器会阻止这个操作。
  • 进入全屏后,按ESC键或者F11键可以退出全屏,不同浏览器的快捷键可能存在差异。
  • 全屏状态下,浏览器的部分默认行为会变化,比如滚动条会隐藏,页面的尺寸会变为屏幕的尺寸。
  • 如果需要指定某个元素全屏,而不是整个页面,只需要把getRequestFullscreen函数里的document.documentElement替换成对应的元素即可,比如document.getElementById('target')

注意:部分浏览器可能不允许iframe内的页面触发全屏,除非iframe添加了allowfullscreen属性,如果需要嵌入的页面支持全屏,需要给iframe添加该属性。

js全屏显示Fullscreen_APIrequestFullscreenexitFullscreen修改时间:2026-06-12 05:45:44

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。