当前位置:首页 > JavaScript

js实现网页全屏

2026-03-01 06:09:58JavaScript

实现网页全屏的JavaScript方法

使用JavaScript实现网页全屏功能可以通过Fullscreen API完成。该API提供了进入和退出全屏模式的方法。

进入全屏模式

调用requestFullscreen方法可以让特定元素进入全屏模式。通常应用于整个页面或某个容器元素。

function enterFullscreen(element) {
  if (element.requestFullscreen) {
    element.requestFullscreen();
  } else if (element.webkitRequestFullscreen) { /* Safari */
    element.webkitRequestFullscreen();
  } else if (element.msRequestFullscreen) { /* IE11 */
    element.msRequestFullscreen();
  }
}

// 全屏整个页面
enterFullscreen(document.documentElement);

// 全屏某个元素
const container = document.getElementById('fullscreen-container');
enterFullscreen(container);

退出全屏模式

使用exitFullscreen方法可以退出全屏模式。

js实现网页全屏

function exitFullscreen() {
  if (document.exitFullscreen) {
    document.exitFullscreen();
  } else if (document.webkitExitFullscreen) { /* Safari */
    document.webkitExitFullscreen();
  } else if (document.msExitFullscreen) { /* IE11 */
    document.msExitFullscreen();
  }
}

exitFullscreen();

检测全屏状态

通过document.fullscreenElement可以检测当前是否处于全屏状态。

function isFullscreen() {
  return !!(document.fullscreenElement || 
            document.webkitFullscreenElement || 
            document.msFullscreenElement);
}

if (isFullscreen()) {
  console.log('Currently in fullscreen mode');
}

全屏事件监听

可以监听全屏状态变化事件。

js实现网页全屏

document.addEventListener('fullscreenchange', handleFullscreenChange);
document.addEventListener('webkitfullscreenchange', handleFullscreenChange);
document.addEventListener('msfullscreenchange', handleFullscreenChange);

function handleFullscreenChange() {
  if (isFullscreen()) {
    console.log('Entered fullscreen mode');
  } else {
    console.log('Exited fullscreen mode');
  }
}

样式调整

全屏模式下可能需要调整CSS样式。

:-webkit-full-screen {
  background-color: white;
}

:-moz-full-screen {
  background-color: white;
}

:-ms-fullscreen {
  background-color: white;
}

:fullscreen {
  background-color: white;
}

浏览器兼容性注意事项

不同浏览器可能需要不同的前缀:

  • 标准:requestFullscreen
  • Safari/Chrome旧版:webkitRequestFullscreen
  • IE11:msRequestFullscreen

建议在调用API前先检测方法是否存在。

完整示例代码

<!DOCTYPE html>
<html>
<head>
  <style>
    #fullscreen-container {
      width: 100%;
      height: 100vh;
      background-color: #f0f0f0;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    button {
      padding: 10px 20px;
      font-size: 16px;
    }
  </style>
</head>
<body>
  <div id="fullscreen-container">
    <button id="toggle-fullscreen">Toggle Fullscreen</button>
  </div>

  <script>
    const toggleBtn = document.getElementById('toggle-fullscreen');
    const container = document.getElementById('fullscreen-container');

    toggleBtn.addEventListener('click', () => {
      if (!document.fullscreenElement) {
        enterFullscreen(container);
      } else {
        exitFullscreen();
      }
    });

    function enterFullscreen(element) {
      if (element.requestFullscreen) {
        element.requestFullscreen();
      } else if (element.webkitRequestFullscreen) {
        element.webkitRequestFullscreen();
      } else if (element.msRequestFullscreen) {
        element.msRequestFullscreen();
      }
    }

    function exitFullscreen() {
      if (document.exitFullscreen) {
        document.exitFullscreen();
      } else if (document.webkitExitFullscreen) {
        document.webkitExitFullscreen();
      } else if (document.msExitFullscreen) {
        document.msExitFullscreen();
      }
    }

    document.addEventListener('fullscreenchange', handleFullscreenChange);
    document.addEventListener('webkitfullscreenchange', handleFullscreenChange);
    document.addEventListener('msfullscreenchange', handleFullscreenChange);

    function handleFullscreenChange() {
      console.log('Fullscreen state changed');
    }
  </script>
</body>
</html>

标签: 全屏网页
分享给朋友:

相关文章

vue实现全屏滚动

vue实现全屏滚动

Vue 实现全屏滚动的方法 全屏滚动效果可以通过多种方式实现,以下是几种常见的方法: 使用 vue-fullpage.js vue-fullpage.js 是一个基于 fullPage.js 的…

js怎么实现网页跳转

js怎么实现网页跳转

使用 window.location.href 修改 window.location.href 可以直接跳转到新的 URL。这是最常见的方法之一,适用于大多数场景。 window.location.…

vue如何实现全屏

vue如何实现全屏

实现全屏的基本方法 在Vue中实现全屏功能可以通过浏览器提供的Fullscreen API完成。以下是一个基础实现示例: // 进入全屏 function enterFullscreen(eleme…

vue实现网页聊天

vue实现网页聊天

Vue 实现网页聊天功能 基础结构搭建 使用 Vue CLI 或 Vite 创建项目,安装必要依赖: npm install vue socket.io-client 创建基础组件结构: &l…

vue实现手机全屏

vue实现手机全屏

Vue 实现手机全屏的方法 使用 Fullscreen API 现代浏览器提供了 Fullscreen API,可以通过 JavaScript 请求全屏。在 Vue 中,可以通过调用这些 API 实现…

vue实现登录网页

vue实现登录网页

实现登录页面的步骤 前端部分使用Vue.js框架 创建Vue项目并安装必要依赖: vue create login-page cd login-page npm install axios vue…