js实现分屏
使用CSS Grid实现分屏
通过CSS Grid布局可以轻松实现分屏效果。定义一个容器,设置display: 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是另一种实现分屏的现代布局方式。设置容器为display: flex,子元素自动填充可用空间。
.split-screen {
display: flex;
height: 100vh;
}
.left-pane {
flex: 1;
background: #f0f0f0;
}
.right-pane {
flex: 1;
background: #e0e0e0;
}
可拖拽分屏实现
通过JavaScript实现可调整大小的分屏界面,需要监听鼠标事件并动态调整面板宽度。
const divider = document.querySelector('.divider');
const leftPane = document.querySelector('.left-pane');
let isDragging = false;
divider.addEventListener('mousedown', (e) => {
isDragging = true;
document.body.style.cursor = 'col-resize';
});
document.addEventListener('mousemove', (e) => {
if (!isDragging) return;
leftPane.style.width = `${e.clientX}px`;
});
document.addEventListener('mouseup', () => {
isDragging = false;
document.body.style.cursor = '';
});
响应式分屏布局
使用媒体查询确保分屏在不同设备上表现良好。小屏幕时切换为垂直堆叠布局。
@media (max-width: 768px) {
.split-screen {
grid-template-columns: 1fr;
grid-template-rows: 1fr 1fr;
}
}
多窗格分屏实现
扩展基础分屏为多个窗格,使用CSS Grid的grid-template-areas属性定义复杂布局。
.split-screen {
display: grid;
grid-template-areas:
"header header"
"sidebar main"
"footer footer";
grid-template-rows: auto 1fr auto;
grid-template-columns: 200px 1fr;
}
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main { grid-area: main; }
.footer { grid-area: footer; }






