当前位置:首页 > 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实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

js实现的游戏

js实现的游戏

JavaScript 游戏开发基础 JavaScript 是开发网页游戏的流行选择,因其无需插件即可在浏览器中运行。以下是一些关键技术和资源: HTML5 Canvas Canvas 提供了绘制图…