当前位置:首页 > 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布局

.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 = '';
});

同步滚动功能

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

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结构示例:

js实现双屏

<!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实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

使用js实现

使用js实现

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

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…