화면 분할

Split screen

화면을 둘 이상의 영역으로 나눠, 두 장면이나 상태를 나란히 비교합니다.

···
html
<div class="stage" id="stage"><div class="pane left"><div class="chart"><i></i><i></i><i></i><i></i><i></i></div><b>BEFORE</b></div>
  <div class="pane right"><div class="chart"><i></i><i></i><i></i><i></i><i></i></div><b>AFTER</b></div>
  <div class="divider" id="divider"><i></i></div><div class="labels"><span>A</span><span>B</span></div>
</div>
css
.stage{position:absolute;inset:0;overflow:hidden;background:var(--bg);touch-action:none}
.pane{position:absolute;inset:0 50% 0 0;overflow:hidden}
.left{right:50%;background:linear-gradient(150deg,#d6d5cb,#b8c2bd);animation:leftPane 3.8s ease-in-out infinite alternate}
.right{left:50%;right:0;background:linear-gradient(150deg,#d2b994,#e4d5b8);animation:rightPane 3.8s ease-in-out infinite alternate}
.chart{position:absolute;left:18%;right:18%;top:25%;height:42%;display:flex;align-items:end;gap:5%;border-bottom:1px solid #34413c88}
.chart i{flex:1;height:38%;background:#62786d}.chart i:nth-child(2){height:68%}.chart i:nth-child(3){height:48%}.chart i:nth-child(4){height:80%}.chart i:nth-child(5){height:58%}
.right .chart i{background:var(--accent-2)}.right .chart i:nth-child(2){height:42%;background:var(--accent-3)}.right .chart i:nth-child(3){height:76%}.right .chart i:nth-child(4){height:52%}.right .chart i:nth-child(5){height:92%}
.pane b{position:absolute;left:12px;top:12px;font:9px ui-monospace,monospace;letter-spacing:.1em;color:#2b332e}
.divider{position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--fg);transform:translateX(-50%);animation:split 3.8s ease-in-out infinite alternate;cursor:ew-resize}
.divider i{position:absolute;left:50%;top:50%;width:20px;height:34px;border:1px solid var(--fg);background:var(--surface);transform:translate(-50%,-50%);border-radius:8px}
.labels{position:absolute;left:10px;right:10px;bottom:10px;display:flex;justify-content:space-between;font:9px ui-monospace,monospace;color:#26312d}
@keyframes split{0%{left:38%}100%{left:64%}}
@keyframes leftPane{0%{right:62%}100%{right:36%}}
@keyframes rightPane{0%{left:38%}100%{left:64%}}
js
const stage=document.getElementById('stage'),divider=document.getElementById('divider');
const left=stage.querySelector('.left'),right=stage.querySelector('.right');
let dragging=false;
divider.addEventListener('pointerdown',e=>{dragging=true;divider.setPointerCapture(e.pointerId);divider.style.animation='none';left.style.animation='none';right.style.animation='none'});
divider.addEventListener('pointermove',e=>{if(!dragging)return;const r=stage.getBoundingClientRect(),pct=Math.max(.2,Math.min(.8,(e.clientX-r.left)/r.width))*100;divider.style.left=pct+'%';left.style.right=(100-pct)+'%';right.style.left=pct+'%'});
divider.addEventListener('pointerup',()=>dragging=false);

화면 분할은 한 프레임을 여러 영역으로 나누고 각 영역에 다른 장면을 배치합니다. 전후 상태, 서로 다른 선택지, 동시에 진행되는 일을 한눈에 비교할 수 있습니다.

각 화면을 별도의 레이어로 놓고 경계선을 정합니다. 데모는 가운데 분할선을 좌우로 움직여 서로 다른 추상 그래프와 색면의 비율을 바꿉니다.

PIP처럼 한 화면이 다른 화면 위에 겹치지 않고, 두 장면이 각각 공간을 차지합니다. 비교할 기준이 맞지 않으면 차이가 잘못 읽힐 수 있으므로 크기·시간·축을 가능한 한 맞추세요.

언제 쓰나

전후 비교나 두 흐름을 동시에 보여 줄 때 씁니다. 비교 기준이 같은지 확인하고, 분할선으로 내용을 가리지 마세요.

페이지로 열기 ↗

항목 추가 요청

아틀라스에 없는 영상 용어·효과를 알려 주세요. 하나씩 살펴보고 추가합니다.