๐perspective ์์ฑ
z=0
์ธ ํ๋ฉด๊ณผ ๋จ์ด์ง ๊ฑฐ๋ฆฌ(๊ฐ์ด ํด์๋ก ๋ฉ๋ฆฌ์ ๋ณด๋ ๊ฒ)๋ฅผ ๋ํ๋ด๋ฉฐ, ์๊ทผ๊ฐ์ ์ฃผ๊ธฐ ์ํด ์ฌ์ฉ
- ๊ฐ์ด ์์์๋ก ๊ฐ๊น์ด์ ๋ณด๋ ๊ฒ์ผ๋ก, ํจ๊ณผ๊ฐ ๋ ๊ทน์ ์ผ๋ก ๋ํ๋จ
- container(๋ถ๋ชจ ์์)์ perspective ์์ฑ์ ์ฃผ๊ณ ,
์๊ทผ๊ฐ์ ์ค ์์ ์์์ transform ์์ฑ๊ณผ ํจ๊ป ์ฌ์ฉ
- perspective ์์ฑ์ ์ฃผ๋ฉด z์ถ์ผ๋ก ์์ง์ฌ์ ๊ฑฐ๋ฆฌ๊ฐ์ ์ค ์ ์์
.๋ถ๋ชจ์์ {
perspective: 500px;
}
.์์์์ {
transform: translate3d(0px,0px,0px);
}
- translate3d์ x, y ๊ฐ์ ๋ฐ๊ฟจ์ ๋ : perspective ์ฌ๋ถ์ ์๊ด ์์ด ๋์ผํ๊ฒ ๋ณ๊ฒฝ
x, y ์ถ์ผ๋ก์ ์ด๋์ ๋จ์ด์ง ๊ฑฐ๋ฆฌ์ ์๊ด ์๊ธฐ ๋๋ฌธ
- translate3d์ z ๊ฐ์ ๋ฐ๊ฟจ์ ๋ : perspective ์์ฑ์ ์ค ์์์์๋ง ํ์ฌ ๊ฑฐ๋ฆฌ์์ 100px ๊ฐ๊น์์ง ์ํ๋ก ๋ณ๊ฒฝ
perspective ์์ฑ์ ์ฃผ์ง ์์ผ๋ฉด, ๊ฑฐ๋ฆฌ์ ๊ฐ๋
์ด ์๊ธฐ ๋๋ฌธ
- ์ถ์ ์ค์ฌ์ผ๋ก ๊ฐ๋๋งํผ ํ์ ์ํฌ ๋ perspective ์์ฑ์ ์ฃผ๋ฉด ๊ฑฐ๋ฆฌ๊ฐ์ ๋๋ผ๋ฉด์ ํ์
.๋ถ๋ชจ์์ {
perspective: 500px;
}
.์์์์ {
transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);
}
-
์ถ ๊ธฐ์ค
-
rotateX(๊ฐ) 0deg ~ 360deg ๋ณ๊ฒฝ
-
rotateY(๊ฐ) 0deg ~ 360deg ๋ณ๊ฒฝ
-
rotateZ(๊ฐ) 0deg ~ 360deg ๋ณ๊ฒฝ
-
x, y ์ถ์ผ๋ก ํ์ ํ ๋ : perspective ์์ฑ์ ์ค ์์์์๋ 500px ๋จ์ด์ง ๊ณณ์์ ๋ดค์ ๋ ํ์ ํ๋ ๊ฒ์ฒ๋ผ ๊ฑฐ๋ฆฌ๊ฐ์ด ๋๊ปด์ง๊ฒ ํ์
-
z ์ถ์ผ๋ก ํ์ ํ ๋ : perspective ์ฌ๋ถ์ ์๊ด ์์ด ๋์ผํ๊ฒ ํ์
z์ถ์ผ๋ก์ ํ์ ์ ๋จ์ด์ง ๊ฑฐ๋ฆฌ์ ์๊ด์์ด ๋์ผํ๊ฒ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๋์ ๋ณด์ด๋ ๋ณํ๋ ์์
๐์์ค์
- ์๊ทผ๊ฐ์ด ์ ์ฉ๋ ๋ฌผ์ฒด๋ฅผ ๋ฉ๋ฆฌ ํํํ๊ฒ ์ด๋์ํฌ ๋, ์์ฃผ ์์์ ธ ๋ณด์ด์ง ์์ ์ ๋์ ๋๋ถ๋ถ์ ์์๋ก ์ฐ์ ์
- ์ ๊ฒฝ์ฐ์์ translateZ(100px) ์์ฑ์ ์คฌ์ ๋,
๋น์ฐํ ํ์ฌ ์์์ ์ค์ฌ ์์น ๊ธฐ์ค์ผ๋ก 100px ๊ฐ๊น์์ก๋ค๊ณ ์๊ฐํ ์ ์์ง๋ง,
์ฌ์ค์ ์์ค์ ๊ธฐ์ค์ผ๋ก ๊ฐ๊น์์ง
- ๊ธฐ๋ณธ์ ์ผ๋ก ์์ค์ ์ ๋ถ๋ชจ์ ์ค์ฌ์์น
- translate3d(100px, 100px, 100px) ์ ๋น๊ต
- x, y ์ฎ๊ฒจ์ง ๊ณณ์ ์ค์ฌ(๋
ธ๋์ )์ ๊ธฐ์ค์ผ๋ก 100px ๊ฐ๊น์ ์ง๋ ๊ฒ์ด ์๋!
- ์์ค์ (๋นจ๊ฐ์ )์ ๊ธฐ์ค์ผ๋ก ๊ฐ๊น์์ง!!
- rotate() ๋ ์์ค์ ์ ๊ธฐ์ค์ผ๋ก ํ์
- ์๋ฌด ํ์ ๋ ์ํค์ง ์์์ ๋
.๋ถ๋ชจ์์ {
perspective: 500px;
}
.์์์์ {
transform: rotateY(0deg);
}
- 90deg ํ์ ์์ผฐ์ ๋
๊ทธ๋ฆผ์ด ์กฐ๊ธ ๋ฌด์์๋ ์ํด๋ฐ๋๋๋คใ
ใ
- ๋ค๋ชจ๊ฐ 90deg ํ์ ํ์ ๋ ์ผ์ง์ ์ผ๋ก ๋จ์ด์ ธ ์๋ค๋ฉด ์์ ํ ์ ์ด ๋์ด ๋ณด์ด์ง ์์
- ๋ง์ฝ ๊ทธ ์ํ์์ ๊ทธ ๋ค๋ชจ๋ฅผ ์ํ์ข์ฐ๋ก ์์ง์ด๋ฉด ๋ ์์น(์์ค์ )์์ ์์ ๋ชจ์๋๋ก ๋ณด์
.์์์์ {
transform: rotateY(90deg);
}
- 45deg ํ์ ์์ผฐ์ ๋
๊ทธ๋ฆผ์ด ์กฐ๊ธ ๋ ๋ฌด์์์ก์ด์ ์ฃ์กํฉ๋๋ค ใ
ใ
- ์ด ๋ถ๋ถ์ด ํท๊ฐ๋ฆด ์ ์๋๋ฐ,
ํ์ฌ ๋์ด ์๋ ์์ ์ด ์์ค์ ์ด๊ณ (๊ฐ์ฅ์ค๋ฅธ์ชฝ๋ ์ค์ ์๋!) ์ ์ค์์ ๋ค๋ชจ๋ฅผ ์ํ์ข์ฐ๋ก ์ด๋์์ผฐ์ ๋ ์์ค์ ์์ ๋ณด์ด๋ ๋ชจ์๋๋ก ๋ณด์
.์์์์ {
transform: rotateY(45deg);
}
๐กperspective-origin : ์์ค์ ์ค์
- ์์ค์ ์ ์ค์ ํ๋ ์์ฑ์ผ๋ก, ๊ธฐ๋ณธ๊ฐ์
perspective-origin: 50% 50%
(๋ถ๋ชจ์ ์ค์)
.๋ถ๋ชจ์์ {
perspective: 500px;
perspective-origin: 100% 100%;
}
.์์์์ {
transform: rotateY(90deg);
}
- ์์ ์์ rotateY(90deg) ์์ ์์ค์ ์ ์์น๋ง ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ๊ฐ์ฅ ๋ฐ์ผ๋ก ๋ณ๊ฒฝ
perspective ์์ฑ์ ํ์ฉํด ํ๋ฆฌ๋ฆญ ๋์๊ฐ๋ ์นด๋๋ฅผ ๋ง๋ค์ด ๋ณด์๋๋ฐ..๐
ํน์ ๊ถ๊ธํ์๋ค๋ฉด?? ๐ํด๋ฆญ