当前位置:首页 > JavaScript

js实现分屏

2026-04-06 10:59:46JavaScript

使用 CSS Grid 实现分屏

通过 CSS Grid 布局可以轻松实现分屏效果。以下是一个简单的水平分屏示例:

<div class="split-screen">
  <div class="left-pane">左侧内容</div>
  <div class="right-pane">右侧内容</div>
</div>
.split-screen {
  display: grid;
  grid-template-columns: 1fr 1fr;
  height: 100vh;
}

.left-pane, .right-pane {
  padding: 20px;
}

使用 Flexbox 实现分屏

Flexbox 是另一种实现分屏的常用方法:

.split-screen {
  display: flex;
  height: 100vh;
}

.left-pane {
  flex: 1;
  background: #f0f0f0;
}

.right-pane {
  flex: 1;
  background: #e0e0e0;
}

可调整的分屏布局

使用 JavaScript 实现可拖拽调整的分屏:

js实现分屏

<div class="resizable-split">
  <div class="left-resizable">左侧</div>
  <div class="divider"></div>
  <div class="right-resizable">右侧</div>
</div>
.resizable-split {
  display: flex;
  height: 100vh;
}

.left-resizable {
  width: 50%;
  background: #f5f5f5;
}

.right-resizable {
  flex: 1;
  background: #e5e5e5;
}

.divider {
  width: 10px;
  background: #ddd;
  cursor: col-resize;
}
const divider = document.querySelector('.divider');
const leftPane = document.querySelector('.left-resizable');
let isDragging = false;

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

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

  const containerWidth = divider.parentNode.offsetWidth;
  const newLeftWidth = (e.clientX / containerWidth) * 100;

  leftPane.style.width = `${newLeftWidth}%`;
});

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

使用第三方库实现分屏

对于更复杂的需求,可以考虑使用专门的库如:

  1. Split.js:

    js实现分屏

    Split(['#left', '#right'], {
    sizes: [30, 70],
    minSize: 200
    });
  2. Golden Layout:

    const myLayout = new GoldenLayout({
    content: [{
     type: 'row',
     content: [{
       type: 'component',
       componentName: 'leftComponent'
     }, {
       type: 'component',
       componentName: 'rightComponent'
     }]
    }]
    });

响应式分屏设计

添加媒体查询使分屏在移动设备上变为垂直布局:

@media (max-width: 768px) {
  .split-screen {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr;
  }

  .resizable-split {
    flex-direction: column;
  }

  .divider {
    width: 100%;
    height: 10px;
    cursor: row-resize;
  }
}

这些方法提供了从简单到复杂的分屏实现方案,可以根据具体需求选择合适的实现方式。

标签: js
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js实现轮播图

js实现轮播图

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

jquery js

jquery js

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

js jquery

js jquery

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

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

js 实现跳转

js 实现跳转

使用 window.location.href 进行跳转 通过修改 window.location.href 可以跳转到指定 URL,浏览器会加载新页面: window.location.hre…