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

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…

js计算器的实现

js计算器的实现

实现基础结构 HTML部分需要创建计算器的基本框架,包含显示区域和按钮。使用<div>容器包裹整个计算器,内部设置一个显示屏和多个按钮。 <div class="calculato…

js实现删除

js实现删除

使用 splice 方法删除数组元素 splice 方法可以删除数组中的元素,并返回被删除的元素。它接受两个参数:起始索引和要删除的元素数量。 const array = [1, 2, 3, 4…