커서 따라가기 줌

Cursor-follow zoom

포인터가 움직이는 위치를 중심으로 화면을 확대해 조작 흐름을 따라갑니다.

다른 이름: Cursor-follow auto zoom
···
html
<div class="stage" id="stage"><div class="surface" id="surface">
  <div class="gridline"></div><div class="card one"><b>01</b><i></i><i></i></div><div class="card two"><b>02</b><i></i></div><div class="button">CONTINUE</div>
</div><div class="cursor" id="cursor"></div><div class="hint">MOVE THE POINTER</div></div>
css
.stage{position:absolute;inset:0;overflow:hidden;background:var(--bg);touch-action:none}
.surface{position:absolute;inset:0;transform:scale(1);transform-origin:50% 50%;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.gridline{position:absolute;inset:15%;border:1px solid var(--line);background:linear-gradient(90deg,transparent 49.8%,var(--line) 50%,transparent 50.2%),linear-gradient(transparent 49.8%,var(--line) 50%,transparent 50.2%);opacity:.5}
.card{position:absolute;width:25%;height:33%;padding:3%;background:var(--surface);border:1px solid var(--line);box-shadow:0 4px 15px #0001}
.card b{font:700 18px ui-monospace,monospace;color:var(--accent)}.card i{display:block;height:2px;width:85%;margin-top:12%;background:var(--line)}
.one{left:18%;top:25%}.two{right:18%;top:42%}
.button{position:absolute;left:59%;top:70%;padding:9px 14px;border:1px solid var(--fg);background:var(--surface);font:9px ui-monospace,monospace}
.cursor{position:absolute;width:13px;height:17px;background:var(--fg);clip-path:polygon(0 0,100% 70%,58% 75%,74% 100%,59% 100%,43% 77%,20% 94%);filter:drop-shadow(0 1px 1px #fff);transition:left .5s,top .5s;pointer-events:none}
.hint{position:absolute;left:12px;bottom:12px;padding:5px 8px;background:var(--surface);border:1px solid var(--line);font:9px ui-monospace,monospace;color:var(--muted)}
js
const stage=document.getElementById('stage'),surface=document.getElementById('surface'),cursor=document.getElementById('cursor');
let x=.27,y=.38,t=0,manualUntil=0,zoomed=true;
function move(nx,ny){x=Math.max(.05,Math.min(.95,nx));y=Math.max(.08,Math.min(.9,ny));surface.style.transformOrigin=(x*100)+'% '+(y*100)+'%';cursor.style.left=(x*stage.clientWidth)+'px';cursor.style.top=(y*stage.clientHeight)+'px';surface.style.transform='scale('+(zoomed?'1.48':'1')+')'}
stage.addEventListener('pointermove',e=>{const r=stage.getBoundingClientRect();manualUntil=performance.now()+2600;zoomed=true;move((e.clientX-r.left)/r.width,(e.clientY-r.top)/r.height)});
stage.addEventListener('click',()=>{manualUntil=performance.now()+2600;zoomed=!zoomed;move(x,y)});
function loop(now){if(now>manualUntil){t+=.012;zoomed=.5+.5*Math.sin(t*1.2)>.32;move(.5+.34*Math.cos(t),.5+.23*Math.sin(t*1.45))}requestAnimationFrame(loop)}
move(x,y);requestAnimationFrame(loop);

커서 따라가기 줌은 포인터가 가리키거나 조작하는 위치를 중심으로 화면을 확대합니다. 마우스 움직임이 많은 안내 영상에서 보는 사람이 시선을 놓치지 않도록 돕습니다.

녹화 도구의 자동 확대 기능을 쓰거나, 편집에서 포인터 위치에 맞춰 scale과 화면 위치를 함께 키프레임으로 움직입니다. 데모는 가짜 포인터를 따라 확대하며, 포인터를 움직이면 실제 입력도 반영합니다.

이 이름은 화면 녹화 도구에서 통하는 설명용 표현이고 표준화된 기능명은 아닙니다. 확대가 포인터보다 늦거나 계속 흔들리면 읽기 어려우므로, 이동을 부드럽게 하고 입력 직후에만 확대하세요.

언제 쓰나

화면 녹화에서 포인터가 움직이는 곳을 놓치기 쉬울 때 씁니다. 확대 구간은 클릭·입력 등 설명할 동작에 맞춰 짧게 둡니다.

페이지로 열기 ↗

항목 추가 요청

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