当前位置:首页 > JavaScript

js实现双屏

2026-04-05 23:54:22JavaScript

双屏显示基础概念

双屏显示通常指通过JavaScript控制两个屏幕(主屏和扩展屏)的内容展示,常见于演示、监控或游戏场景。核心依赖浏览器API(如Window API)或操作系统级多屏管理。

使用Window.open实现简单双屏

通过window.open()打开新窗口并定位到扩展屏,需确保用户已连接多显示器:

js实现双屏

// 主屏代码
const secondScreen = window.open(
  'secondary.html', 
  '_blank', 
  'left=screen.width, width=800, height=600'
);
// secondary.html加载后通信
secondScreen.postMessage('数据同步', '*');

使用Screen API检测多显示器

通过window.screen获取屏幕信息,动态计算窗口位置:

if (window.screen.availLeft > 0) {
  // 扩展屏在左侧
  window.open('secondary.html', '_blank', `left=${-window.screen.availWidth}`);
} else {
  // 扩展屏在右侧
  window.open('secondary.html', '_blank', `left=${window.screen.width}`);
}

跨窗口通信

使用postMessagelocalStorage同步双屏数据:

js实现双屏

// 主窗口发送数据
window.addEventListener('message', (event) => {
  if (event.data === 'ready') {
    secondScreen.postMessage({ content: '更新内容' }, '*');
  }
});

// 副窗口接收数据
window.addEventListener('message', (event) => {
  document.getElementById('display').innerText = event.data.content;
});

全屏API控制分屏

利用Element.requestFullscreen()实现单个屏幕全屏:

// 副屏全屏显示
document.documentElement.requestFullscreen().then(() => {
  console.log('副屏已全屏');
});

注意事项

  • 权限限制:浏览器可能阻止自动弹出窗口,需用户手动允许。
  • 屏幕坐标:多显示器环境下screenX/screenY可能为负值。
  • 事件监听:关闭副屏时主屏需移除相关监听,避免内存泄漏。

高级方案:Electron实现

桌面应用可使用Electron的screen模块精准控制多屏:

const { screen } = require('electron');
const displays = screen.getAllDisplays();
displays.forEach((display, index) => {
  new BrowserWindow({ 
    x: display.bounds.x, 
    y: display.bounds.y 
  });
});

标签: 双屏js
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的J…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…