当前位置:首页 > JavaScript

js实现双屏

2026-02-01 07:23:49JavaScript

使用CSS和JavaScript实现双屏布局

双屏布局通常指在同一页面中并排显示两个独立的内容区域,可以通过CSS和JavaScript实现。以下是几种常见的实现方式:

CSS Flexbox布局

.container {
  display: flex;
  height: 100vh;
}
.screen {
  flex: 1;
  overflow: auto;
  border: 1px solid #ccc;
}

CSS Grid布局

js实现双屏

.container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  height: 100vh;
}
.screen {
  overflow: auto;
}

动态调整双屏比例

通过JavaScript可以动态调整两个屏幕的宽度比例:

const leftScreen = document.querySelector('.left-screen');
const rightScreen = document.querySelector('.right-screen');
const divider = document.querySelector('.divider');

let isDragging = false;

divider.addEventListener('mousedown', (e) => {
  isDragging = true;
  document.body.style.cursor = 'col-resize';
});

document.addEventListener('mousemove', (e) => {
  if (!isDragging) return;

  const containerWidth = document.querySelector('.container').offsetWidth;
  const newLeftWidth = e.clientX;
  const newRightWidth = containerWidth - e.clientX;

  leftScreen.style.width = `${newLeftWidth}px`;
  rightScreen.style.width = `${newRightWidth}px`;
});

document.addEventListener('mouseup', () => {
  isDragging = false;
  document.body.style.cursor = '';
});

同步滚动功能

如果需要实现两个屏幕内容同步滚动:

js实现双屏

const screens = document.querySelectorAll('.screen');

screens.forEach(screen => {
  screen.addEventListener('scroll', (e) => {
    const scrollTop = e.target.scrollTop;
    const scrollLeft = e.target.scrollLeft;

    screens.forEach(otherScreen => {
      if (otherScreen !== e.target) {
        otherScreen.scrollTo(scrollLeft, scrollTop);
      }
    });
  });
});

响应式处理

为适应不同设备,可以添加媒体查询:

@media (max-width: 768px) {
  .container {
    grid-template-columns: 1fr;
  }
  .screen {
    height: 50vh;
  }
}

实际应用示例

完整HTML结构示例:

<!DOCTYPE html>
<html>
<head>
  <style>
    body { margin: 0; }
    .container {
      display: flex;
      height: 100vh;
    }
    .screen {
      flex: 1;
      overflow: auto;
      padding: 20px;
    }
    .divider {
      width: 5px;
      background: #ddd;
      cursor: col-resize;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="screen left-screen">左侧内容区域</div>
    <div class="divider"></div>
    <div class="screen right-screen">右侧内容区域</div>
  </div>
  <script>
    // 添加上述JavaScript代码
  </script>
</body>
</html>

以上方法可以根据具体需求进行组合和调整,实现不同风格和功能的双屏布局。

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

相关文章

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现授权

js实现授权

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

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…

js实现图片滚动

js实现图片滚动

图片滚动的实现方法 使用CSS动画实现 通过CSS的animation和@keyframes可以实现简单的图片滚动效果。这种方法适合静态图片的无缝循环滚动。 <style> .scr…

js实现截图

js实现截图

使用HTML2Canvas库实现截图 HTML2Canvas是一个流行的JavaScript库,可以将网页元素或整个页面转换为Canvas图像。安装方式: npm install html2canv…