230217 - transform, transition

๋ฐฑ์Šน์—ฐยท2023๋…„ 2์›” 17์ผ
1

๐Ÿšฉ transform

transform

๐Ÿ“ ์„ค๋ช…

  • ์š”์†Œ์˜ ์œ„์น˜, ํšŒ์ „, ๋น„ํ‹€๊ธฐ, ํ™•๋Œ€/์ถ•์†Œ ํšจ๊ณผ๋ฅผ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜์ด๋‹ค.

์†์„ฑ

์†์„ฑ์€ ์–‘์ˆ˜ ์Œ์ˆ˜ ๋‘˜ ๋‹ค ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • translateX(n) : ์š”์†Œ ์œ„์น˜๋ฅผ x์ถ•์œผ๋กœ n๋งŒํผ ์ด๋™
  • translateY(n) : ์š”์†Œ ์œ„์น˜๋ฅผ y์ถ•์œผ๋กœ n๋งŒํผ ์ด๋™
  • translate(x, y) : ์š”์†Œ ์œ„์น˜๋ฅผ x์ถ•์œผ๋กœ x๋งŒํผ, y์ถ•์œผ๋กœ y๋งŒํผ ์ด๋™
  • scaleX(n) : ์š”์†Œ ํฌ๊ธฐ๋ฅผ x์ถ•์œผ๋กœ n๋ฐฐ๋งŒํผ ํ™•๋Œ€/์ถ•์†Œ
  • scaleY(n) : ์š”์†Œ ํฌ๊ธฐ๋ฅผ y์ถ•์œผ๋กœ n๋ฐฐ๋งŒํผ ํ™•๋Œ€/์ถ•์†Œ
  • scale(x, y) : ์š”์†Œ ํฌ๊ธฐ๋ฅผ x์ถ•์œผ๋กœ x๋ฐฐ, y์ถ•์œผ๋กœ y๋ฐฐ๋งŒํผ ํ™•๋Œ€/์ถ•์†Œ
  • skewX(n) : ์š”์†Œ๋ฅผ x์ถ•์œผ๋กœ n๋งŒํผ ๊ธฐ์šธ์ž„
  • skewY(n) : ์š”์†Œ๋ฅผ y์ถ•์œผ๋กœ n๋งŒํผ ๊ธฐ์šธ์ž„
  • skew(x, y) : ์š”์†Œ๋ฅผ x์ถ•์œผ๋กœ x๋งŒํผ, y์ถ•์œผ๋กœ y๋งŒํผ ๊ธฐ์šธ์ž„
  • rotate(angle) : ์š”์†Œ๋ฅผ angle ๋งŒํผ ํšŒ์ „์‹œํ‚ด (ex. 45deg)

  • transform-origin : ๋„ํ˜•์˜ ๊ธฐ์ค€์ ์„ ์ง€์ •ํ•œ๋‹ค. (๊ธฐ๋ณธ๊ฐ’ - ์ค‘์•™)
    • center center(0, 0)์ด ๊ธฐ๋ณธ๊ฐ’. top bottom left right / px / % ์ „๋ถ€ ๊ฐ’ ์ง€์ • ๊ฐ€๋Šฅ

  • backface-visibility : ์š”์†Œ(item)๊ฐ€ ๋’ค์ง‘ํ˜”์„ ๋•Œ(rotateX | rotateY) ๋’ท๋ฉด ํ‘œ์‹œ ์—ฌ๋ถ€๋ฅผ ์ง€์ •

์œ„ ์†์„ฑ๋“ค์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ถ•์•ฝํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

.trans16 { transform: matrix(1.5, 0.3, 0, 0.8, 30, -45); }
/* transform: matrix(scaleX, skewX, skewY, scaleY, translateX, translateY ) */

โœ’๏ธ ์‚ฌ์šฉ๋ฒ•

์ž…๋ ฅ

์„ ํƒ์ž { transform: translate() | scale() | skew() | rotate() | ... }

/* ์˜ˆ์‹œ */
.trans01 { 
		-webkit-transform: translate(-40px);
		-ms-transform: translate(-40px);
		transform: translateX(-40px); 
	}

	.trans02 { transform: translateY(-40px); }
	.trans03 { transform: translate(-40px, 10px); }
	/* 
		transform: translateX() - x์ถ•์ด๋™
		transform: translateY() - y์ถ•์ด๋™
		transform: translate() - x์ถ•์ด๋™
		transform: translate(X, Y) - x, y์ถ• ์ด๋™
	*/

	.trans04 { transform: scale(150%); }
	.trans05 { transform: scaleX(1.5); }
	.trans06 { transform: scale(1.5, 0.4); }
	/* 
		transform: scale(๋ฐฐ์œจ) - ์ƒํ•˜์ขŒ์šฐ ๋ฐฐ์œจ(1.5) | ๋น„์œจ(150%)	
		  - ๊ธ€์”จ๋„ ๊ฐ™์ด ๋Š˜์–ด๋‚˜๊ณ  ๊ฐ™์ด ์ค„์–ด๋“ฆ
	*/

	.trans07 { transform: skewX(30deg); }
	.trans08 { transform: skewY(30deg); }
	.trans09 { transform: skew(40deg, 15deg); }
	/*
		transform: skew(๊ฐ๋„) - x์ถ•๊ธฐ์šธ๊ธฐ
		transform: skew(X, Y) - x์ถ•๊ธฐ์šธ๊ธฐ, y์ถ•๊ธฐ์šธ๊ธฐ (ํ‰ํ–‰์‚ฌ๋ณ€ํ˜•)
	*/

	.trans10 { transform: rotate(25deg); }
	/* 
		์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ 25๋„ ํšŒ์ „, ์Œ์ˆ˜(-) ์‚ฌ์šฉ ์‹œ ๋ฐ˜์‹œ๊ฒŒ๋ฐฉํ–ฅ์œผ๋กœ 25๋„ ํšŒ์ „
		transform-origin: ๊ธฐ๋ณธ ๋„ํ˜•์˜ ์ค‘์•™์ด ๊ธฐ์ค€์ 
	*/
	.trans11 { transform: rotate(25deg); transform-origin: center center; }
	.trans12 { transform: rotate(25deg); transform-origin: right bottom; }
	.trans13 { transform: rotate(25deg); transform-origin: 20% 50%; }
	.trans14 { transform: rotate(25deg); transform-origin: 150px 200px; }
	.trans15 { transform: scale(70%) rotate(45deg) translateY(100px); }
	/* ์—ฌ๋Ÿฌ ์†์„ฑ๊ฐ’์„ ๋™์‹œ์— ์ ์šฉ, ์ค‘์‹ฌ์ถ•์€ ์ด๋™ํ•˜์ง€ ์•Š์Œ */

	.trans16 { transform: matrix(1.5, 0.3, 0, 0.8, 30, -45); }
	/* transform: matrix(scaleX, skewX, skewY, scaleY, translateX, translateY ) */
	

	.backface { background: rgba(240,128,128, .5); }
	.backface > div { background: DarkOrange; }
	.backface > div > p { margin: 0; font-size: 30px; }

	.trans17 { transform: scale(60%); }

	.trans18, .trans19 { transform: scale(60%) rotateY(180deg); }

	.trans18 {  }
	.trans19 { backface-visibility: hidden; }
	/* backface-visibility : ์š”์†Œ(item)๊ฐ€ ๋’ค์ง‘ํ˜”์„ ๋•Œ(rotateX | rotateY) ๋’ท๋ฉด ํ‘œ์‹œ ์—ฌ๋ถ€๋ฅผ ์ง€์ • */

  </style>

์ถœ๋ ฅ

  • ์ด๋ฏธ์ง€๋กœ ๋Œ€์ฒด

    transform


    backface-visibility


๐Ÿ”— ์ฐธ๊ณ  ๋งํฌ & ๋„์›€์ด ๋˜๋Š” ๋งํฌ






๐Ÿšฉ transition

transition

๐Ÿ“ ์„ค๋ช…

  • css์˜ ํ”„๋กœํผํ‹ฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ฃผ๊ณ  ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ์†๋„๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ํ”„๋กœํผํ‹ฐ : css์—์„œ ํŠน์ • ๋‹จ์œ„๋ฅผ ๊ฐ–๋Š” ๊ฐ’

์†์„ฑ

  • transition-duration : ํ”„๋กœํผํ‹ฐ๊ฐ€ ๋ณ€ํ™”ํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„
  • transition-property : ํ”„๋กœํผํ‹ฐ๊ฐ€ ๋ณ€ํ™”ํ•˜๋Š” ์†์„ฑ
    • all : transition์˜ ๋ชจ๋“  ์†์„ฑ์ด ๋ณ€ํ™”.
      -> transition: width๋ฅผ ํ•˜๋ฉด width์—๋งŒ ์ ์šฉ
  • transition-timing-function : ๋ณ€ํ™”ํ•˜๋Š” ์‹œ๊ฐ„(์†๋„)์„ ์กฐ์ ˆํ•œ๋‹ค.(๊ฐ€์†/๊ฐ์†)
    • ease : ๊ธฐ๋ณธ(์‹œ์ž‘๊ณผ ๋์„ ์ฒœ์ฒœํžˆ, ์ค‘๊ฐ„์„ ๋น ๋ฅด๊ฒŒ)
    • linear : ๊ณ„์† ๋™์ผํ•œ ์†๋„
    • ease-in : ์‹œ์ž‘์„ ์ฒœ์ฒœํžˆ, ๋’ค๋กœ ๊ฐˆ ์ˆ˜๋ก ๋น ๋ฅด๊ฒŒ
    • ease-out : ์‹œ์ž‘์„ ๋น ๋ฅด๊ฒŒ, ๋์„ ์ฒœ์ฒœํžˆ
    • ease-in-out : ์‹œ์ž‘๊ณผ ๋์„ ์ฒœ์ฒœํžˆ
  • transition-delay : ํ”„๋กœํผํ‹ฐ์˜ ๋ณ€ํ™”๋ฅผ ์„ค์ •ํ•œ ์‹œ๊ฐ„๋งŒํผ ์ง€์—ฐํ•œ ํ›„ ์‹คํ–‰ํ•˜๋„๋ก ํ•จ

์œ„ ์†์„ฑ๋“ค์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ถ•์•ฝํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

transition: all .5s ease-out; /* transition ๋ชจ๋“  ์†์„ฑ ์ถ•์•ฝ */ 

โœ’๏ธ ์‚ฌ์šฉ๋ฒ•

์ž…๋ ฅ

/* ์˜ˆ์‹œ */
	.b1 { 
		background: MediumOrchid;
		transition-duration: 1s;
		transition-property: all; /* hover์‹œ ์ƒ‰์ƒ๋„ ์ฒœ์ฒœํžˆ ๋ณ€ํ™” */
		transition-timing-function: ease-in-out;
	}
	.b1:hover { 
		background: LightGreen;
		transform: translate(700px); 
		-webkit-transition-duration: .5s;
		transition-delay: 500ms; /* 0.5s */
	}
    
	.b2 { 
		background: DarkKhaki; 
		transition: all .5s ease-out; /* transition ๋ชจ๋“  ์†์„ฑ ์ถ•์•ฝ*/
	}
	.b2:hover { 
		background: lightblue;
		transform: rotate(360deg);
	}

์ถœ๋ ฅ

  • ์ด๋ฏธ์ง€๋กœ ๋Œ€์ฒด

hover ์ „

b1 hover

b2 hover


๐Ÿ”— ์ฐธ๊ณ  ๋งํฌ & ๋„์›€์ด ๋˜๋Š” ๋งํฌ






profile
๊ณต๋ถ€ํ•˜๋Š” ๋ฒจ๋กœ๊ทธ

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