# Reference
aproid blog - CSS Transition ์ฑ๋ฅ ์ต์ ํ by aproid
https://aproid.github.io/2019/03/21/transition-optimize/
yceffort blog - CSS ์ฑ๋ฅ ํฅ์์ํค๊ธฐ
wonism blog - Critical Rendering Path๋?
https://wonism.github.io/critical-rendering-path/
0) ํ์ต๊ฐ์
์๋๋ฐ๋งต ํ๋ก์ ํธ ์ค ๋ชจ๋ฐ์ผ์์ CSS Transition์ ํ๋ ์ ์ ํ๋ฅผ ํ์ธํ์ต๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด CSS ๋ ๋๋ง ๋จ๊ณ๋ฅผ ์ฐธ๊ณ , ์ฐ์ฐ๋น์ฉ์ ์ค์ฌ ํ๋ ์ ์ ํ๋ฅผ ์ต์ํํ๋ CSS ์ต์ ํ ๊ฒฝํ์ ์ ๋ฆฌํ์ต๋๋ค.
1) ๋ฌธ์ ํ์ธ
ํ๋ก์ ํธ ์ค๊ฐ์ ๊ฒ ์ฐจ ๋ชจ๋ฐ์ผ์ ํ์ด์ง๋ฅผ ๋ก๋ฉํด๋ณด์์ต๋๋ค.
๋ค๋ฅธ ๋ ์ด์์๋ค์ PC์์ ํ ์คํธํ ๋ด์ฉ๊ณผ ๊ฑฐ์ ์ผ์นํ๋๋ฐ, ์ต์ด ์คํ ์ Transition์ด ๋ฌธ์ ์์ต๋๋ค.
๋ ์ด์์์ด ๊นจ์ง์ง ์์ง๋ง ์ผ์ชฝ ๋ฉ์ธํ๋ฉด์ด ๋๋๋๋ฃ๋จ๋๋๋๋ฃใฑ ํ๋ฉฐ ํ๋ ์ ์ ํ๊ฐ ๋์ ๋ณด์
๋๋ค.
๋ง์์ ๋ค์ง ์์ต๋๋ค.
๋ฐ๋ก ๊ตฌ๊ธ๋ง์ ๋ค์ด๊ฐ์ต๋๋ค.
2) ๋ฌธ์ ๋ถ์ & ํด๊ฒฐ๋ฐฉ์ ๊ตฌ์ฑ
๊ตฌ๊ธ๋งํด๋ณด๋ ๋ง์นจ ์ ๋ฒ์ ๊ณต๋ถํ๋ ๋ด์ฉ์ด ์ด ๋ฌธ์ ์ ํด๊ฒฐ๋ฐฉ๋ฒ์ด์์ต๋๋ค.
์ ๋ฆฌํ๋ ๋ด์ฉ์ ๋ค์ ์ฝ์ด๋ณด๊ณ ๋ฌธ์ ๋ฅผ ํ์ ํ์ต๋๋ค.
์์น๋ฅผ ์ด๋ํ๋ ์ก์ ์ ์ ๋ถ left๋ top๊ฐ์ ๋ณ๊ฒฝ์ ํตํด ์ด๋ฃจ์ด์ง๋๋ก ๋ง๋ค์ด์ ธ ์์์ต๋๋ค.
์ด๋ ์์ฒญ๋ ๊ณ์ฐ์ ์๊ตฌํ๊ธฐ ๋๋ฌธ์ ๊ณ์ฐ๋ฅ๋ ฅ์ด ๋น๊ต์ ๋ฎ์ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ์์ ํ๋ ์ ์ ํ๊ฐ ๋ฐ์ํ์๊ณ ,
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ๊ณ์ฐํ์๋ฅผ ์ค์ฌ์ผ ํ์ต๋๋ค.
๊ณ์ฐ ํ์๋ฅผ ์ค์ด๊ธฐ ์ํด ์๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ต๋๋ค:
Transition์์ opacity์ transform๋ง ์ฌ์ฉ
3) ํด๊ฒฐ๋ฐฉ์ ์ ์ฉ
๊ธฐ์กด ์ฝ๋์ ๋๋ค.
position: fixed ์ต์ ์ด ์ ์ฉ๋์ด์๊ณ , left์ translate๋ก ์ค๊ฐ์ ์ฐฝ์ ๋์๋๋ค.
์ค๋ฅธ์ชฝ์ ์ฐฝ์ด ๋จ๋ฉด ์๋ ์ต์ ์ผ๋ก ๋ณ๊ฒฝํ๊ณ transition ์ต์ ์ ์ฌ์ฉํ์ฌ ๋ถ๋๋ฝ๊ฒ ์์ง์ด๋๋ก ํ์ต๋๋ค.
left๋ฅผ ๊ณ ์ ํ๊ณ transform์ผ๋ก๋ง ์์ง์ด๊ฒ ํ๊ธฐ ์ํด ๊ทธ๋ฆผ์ ๊ทธ๋ ค๋ณด๋ฉฐ transform ์ด๋๋ฐ๊ฒฝ์ ๊ณ์ฐํ์ต๋๋ค.
๋ฐ๊ฒฝ์ ๊ณ์ฐํ๋ฉฐ ์๋ ๊ณ์ฐ์์ ๊ตฌ์ฑํ์ต๋๋ค.
์ฐฝ์ด 1๊ฐ์ผ ๋: ๋ถ๋ชจ์ ๋ฐ๋งํผ ์ผ์ชฝ์์ ์ ํ๋ฉด์ ๋ฐ๋งํผ ๋ค์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ => ( { parent_size } / 2 ) - ( { display_size } / 2 )
์ฐฝ์ด 2๊ฐ์ผ ๋: ์์ชฝ ์ฌ๋ฐฑ๋งํผ๋ง ์ด๋ => 10px
๊ฒฐ๊ณผ์ ์ผ๋ก ์๋ ์ฝ๋๋ก ๋ณ๊ฒฝํ์ต๋๋ค.
์ฐ์ ์ฐฝ์ ๊ฐ์ธ๊ณ ์๋ ๋ถ๋ชจ์ ํฌ๊ธฐ์ ์ฐฝ์ ํฌ๊ธฐ(=ํ๋ฉด)์ ๋ณ์๋ก ์ค์ ํด์ฃผ์์ต๋๋ค.
ํ๋ฉด์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ถ๋ชจ์ ํฌ๊ธฐ๋ ์ฐฝ ์ ์ฒด์ ํฌ๊ธฐ๋ก ์์์ ๋ฐ๋๋๋ก ํ์ต๋๋ค.
์ฐฝ์ด 1๊ฐ์ผ ๋๋ ๋ถ๋ชจ์ ํฌ๊ธฐ์ ๋ฐ๋งํผ ์ผ์ชฝ์ผ๋ก ์ด๋ํ ๋ค ์ฐฝ์ ํฌ๊ธฐ์ 50%๋งํผ ๋นผ์ ์ ํํ ์ค๊ฐ์ ์์นํ๋๋ก ํฉ๋๋ค
์ฐฝ์ด 2๊ฐ์ผ ๋๋ ๋ฐ๋ก ๊ฐ์ ๋ณ๊ฒฝํ์ง ์๊ณ left ์ต์ ๋ง ์ง์ ์ต๋๋ค.
์ถ๊ฐ๋ก will-change์ต์ ์ ์ถ๊ฐํ์ฌ css๋ฅผ GPU๋ฅผ ์ฌ์ฉํ์ฌ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ต์ ์ ์ฃผ์์ต๋๋ค.
4) ์ ์ฉ ๊ฒฐ๊ณผ
ํ์ฐํ ํ๋ ์์ ํ๊ฐ ํด๊ฒฐ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
'๐จ Dev_FE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ JS ] ๋ฌธ์์ด๋ด์ ํน์ ๋ฌธ์์ด ๋ชจ๋ ๋์นํ๊ธฐ (0) | 2022.01.25 |
---|---|
[ JS ] 1. ์ปดํ์ผ (0) | 2021.08.28 |
[ vanilla js ] Web Worker API (๊ฐ๋ ํธ) (0) | 2021.07.20 |