transform

kirin.logยท2021๋…„ 4์›” 17์ผ
0

๐ŸŽƒ transform

๐Ÿ‘‰ ํŠธ๋žœ์Šคํผ(Transform)์€ ์š”์†Œ์— ์ด๋™(translate), ํšŒ์ „(rotate), ํ™•๋Œ€์ถ•์†Œ(scale), ๋น„ํ‹€๊ธฐ(skew) ํšจ๊ณผ๋ฅผ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

ํŠธ๋žœ์ง€์…˜(transition)์€ CSS ์Šคํƒ€์ผ ๋ณ€๊ฒฝ์„ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด duration(์ง€์†์‹œ๊ฐ„)์„ ๋ถ€์—ฌํ•˜์—ฌ ์†๋„๋ฅผ ์กฐ์ ˆํ•œ๋‹ค.

์• ๋‹ˆ๋ฉ”์ด์…˜(animation)์€ ํ•˜๋‚˜์˜ ์ค„๊ฑฐ๋ฆฌ(@keyframes)๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ์ค„๊ฑฐ๋ฆฌ ๋‚ด์—์„œ ์„ธ๋ถ€ ์›€์ง์ž„์„ ์‹œ๊ฐ„ ํ๋ฆ„ ๋‹จ์œ„๋กœ ์ œ์–ดํ•˜์—ฌ ์š”์†Œ์˜ ์›€์ง์ž„์„ ํ‘œํ˜„ํ•œ๋‹ค.

ํŠธ๋žœ์Šคํผ(Transform)์€ ์š”์†Œ์— ์ด๋™(translate), ํšŒ์ „(rotate), ํ™•๋Œ€์ถ•์†Œ(scale), ๋น„ํ‹€๊ธฐ(skew) ํšจ๊ณผ๋ฅผ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ๋‹จ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ๋ฅผ ์ œ๊ณตํ•˜์ง€๋Š” ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ •์˜๋œ ํ”„๋กœํผํ‹ฐ๊ฐ€ ๋ฐ”๋กœ ์ ์šฉ๋˜์–ด ํ™”๋ฉด์— ํ‘œ์‹œ๋œ๋‹ค. ํŠธ๋žœ์Šคํผ์€ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•˜์—ฌ์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ๋ฅผ ๋ถ€์—ฌํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋ฉด ํŠธ๋žœ์ง€์…˜์ด๋‚˜ ์• ๋‹ˆ๋ฉ”์ด์…˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค.


๐ŸŽ… transform ์†์„ฑ

  • ์†์„ฑ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

โ— ๋งŒ์•ฝ ํ•˜๋‚˜์˜ ํƒœ๊ทธ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ transform ๋ณ€ํ™˜ํ•จ์ˆ˜(translate, scale ๋“ฑ) ๋ฅผ ์ ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ๋ณ€ํ™˜ํ•จ์ˆ˜๋ฅผ ํ”„๋กœํผํ‹ฐ๊ฐ’์œผ๋กœ ์‰ผํ‘œ์—†์ด ๋‚˜์—ดํ•œ๋‹ค. ๋‚˜์—ด์ˆœ์„œ์— ๋”ฐ๋ผ ์ฐจ๋ก€๋Œ€๋กœ ํšจ๊ณผ๊ฐ€ ์ ์šฉ๋œ๋‹ค.

/* ์˜ˆ์‹œ */

transform: scale(1) rotate(0) translateX(30px);
transform ์†์„ฑํšจ๊ณผ์„ค๋ช…๋‹จ์œ„
translate(x,y)์ด๋™ํšจ๊ณผ์š”์†Œ์˜ ์œ„์น˜๋ฅผ X์ถ•์œผ๋กœ x๋งŒํผ, Y์ถ•์œผ๋กœ y๋งŒํผ ์ด๋™px, %, em ๋“ฑ
translateX(n)์ด๋™ํšจ๊ณผ์š”์†Œ์˜ ์œ„์น˜๋ฅผ X์ถ•์œผ๋กœ n๋งŒํผ ์ด๋™px, %, em ๋“ฑ
translateY(n)์ด๋™ํšจ๊ณผ์š”์†Œ์˜ ์œ„์น˜๋ฅผ Y์ถ•์œผ๋กœ n๋งŒํผ ์ด๋™px, %, em ๋“ฑ
--------------------------------------------------------------------------------------------------------------------
scale(x,y)ํ™•๋Œ€/์ถ•์†Œ ํšจ๊ณผ์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ X์ถ•์œผ๋กœ x๋ฐฐ, Y์ถ•์œผ๋กœ y๋ฐฐ ํ™•๋Œ€ ๋˜๋Š” ์ถ•์†Œ0๊ณผ ์–‘์ˆ˜
scaleX(n)ํ™•๋Œ€/์ถ•์†Œ ํšจ๊ณผ์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ X์ถ•์œผ๋กœ n๋ฐฐ ํ™•๋Œ€ ๋˜๋Š” ์ถ•์†Œ0๊ณผ ์–‘์ˆ˜
scaleY(n)ํ™•๋Œ€/์ถ•์†Œ ํšจ๊ณผ์š”์†Œ์˜ ํฌ๊ธฐ๋ฅผ Y์ถ•์œผ๋กœ n๋ฐฐ ํ™•๋Œ€ ๋˜๋Š” ์ถ•์†Œ0๊ณผ ์–‘์ˆ˜
--------------------------------------------------------------------------------------------------------------------
skew(x-angle,y-angle)๋น„ํ‹€๊ธฐ ํšจ๊ณผ์š”์†Œ๋ฅผ X์ถ•์œผ๋กœ x ๊ฐ๋„๋งŒํผ, Y์ถ•์œผ๋กœ y ๊ฐ๋„๋งŒํผ ๊ธฐ์šธ์ธ๋‹ค+/- ๊ฐ๋„(deg)
skewX(x-angle)๋น„ํ‹€๊ธฐ ํšจ๊ณผ์š”์†Œ๋ฅผ X์ถ•์œผ๋กœ x ๊ฐ๋„๋งŒํผ ๊ธฐ์šธ์ธ๋‹ค.+/- ๊ฐ๋„(deg)
skewY(y-angle)๋น„ํ‹€๊ธฐ ํšจ๊ณผ์š”์†Œ๋ฅผ Y์ถ•์œผ๋กœ y ๊ฐ๋„๋งŒํผ ๊ธฐ์šธ์ธ๋‹ค.+/- ๊ฐ๋„(deg)
--------------------------------------------------------------------------------------------------------------------
rotate(angle)ํšŒ์ „ํšจ๊ณผ์š”์†Œ๋ฅผ angle๋งŒํผ ํšŒ์ „+/- ๊ฐ๋„(deg)
/* translate */
.translate_div {
    transform: translate(10px, 50px);  /* ์œ„์น˜๋ฅผ ๊ฐ 10px, 50px๋งŒํผ ์ด๋™ */
  }
/* 
โ— translate() ๊ฐ’์ด ํ•˜๋‚˜๋งŒ ์žˆ์„ ๊ฒฝ์šฐ์—๋Š” ๊ฐ€๋กœ ๋ฐฉํ–ฅ ์ด๋™๋งŒ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์„ธ๋กœ ๋ฐฉํ–ฅ ์ด๋™์€ ์—†๋‹ค๊ณ  ๊ฐ„์ฃผํ•จ 
โ— ๊ธฐ๋ณธ๊ธฐ์ค€์ ์€ ์š”์†Œ์˜ ์ •์ค‘์•™์ด๋‹ค (50%, 50%) = transform-origin
*/  



/* scale */ 
.scale_div {
    transform: scale(.75);   /* 0.75๋ฐฐ ํฌ๊ธฐ ๋ณ€๊ฒฝ */
  }

.scale_div:hover {
    transform: scale(1.0);   /* hover์‹œ ํฌ๊ธฐ ๋ณ€๊ฒฝ ํšจ๊ณผ */
  }



/* skew */ 
.skew_div {
    transform: skew(5deg, -20deg);
  }

.skew_div:hover {
    transition: transform 1s linear;
    transform: skew(0, 0);
  }



/* rotate */ 
.rotate_div {
    transform: rotate(70deg);
    transition-duration: 2s;



/* ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ณ€ํ™˜ ํ•จ์ˆ˜๋ฅผ ์ ์š”ํ•  ๋–„(์‰ผํ‘œ ์—†์ด ๋‚˜์—ดํ•˜๊ธฐ) */ 
.complex {
    transform: scale(.5) rotate(20deg);
  }

.complex:hover {
    transition: transform 1s linear;
    transform: scale(1) rotate(0);
  } 

https://webclub.tistory.com/619

profile
boma91@gmail.com

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด