Transform

Transform

변환은 엘리먼트 좌표를 조작하여 위치나, 크기, 회전 각도 등을 변경하는 기법입니다.
변환함수는 이동(translate), 확대(scale), 회전(rotate), 기울이기(skew) 등의 4가지 함수와 행렬변환, 원근변환이 있습니다.

이동(translate) 확대(scale) 회전(rotate) 기울이기(skew)
2d변환 translate(x,y) scale(x,y) rotate(angle) skew(x-angle,y-angle)
3d변환 translate3d(x,y,z) scale3d(x,y,z) rotate3d(ax,y,z,angle)
x축 변환 translateX(x) scaleX(x) rotateX(angle) skewX(angle)
y축 변환 translateY(y) scaleY(y) rotateY(angle) skewY(angle)
z축 변환 translateZ(z) scaleZ(z) rotateZ(angle)

translate

Porperty Sample Description
translate transform: translate(10px, 20px); 선택한 요소의 X좌표, Y좌표 이동을 나타냅니다.
translate3d transform: translate3d(10px, 20px, 30px); 선택한 요소의 X좌표, Y좌표, Z좌표 이동을 나타냅니다.
translateX transform: translateX(10px) 선택한 요소의 X좌표 이동을 나타냅니다.
translateY transform: translateY(10px) 선택한 요소의 Y좌표 이동을 나타냅니다.
translateZ transform: translateZ(10px) 선택한 요소의 Z좌표 이동을 나타냅니다.
translate01
translate02
translate03
translate04
translate05
.translate01 { transform: translate(10px, 10px); }
.translate02 { transform: translate(20px, 20px); }
.translate03 { transform: translate(30px, 30px); }
.translate04 { transform: translate(40px, 40px); }
.translate05 { transform: translate(50px, 50px); }
translate06
translate07
translate08
translate09
translate10
.translate06 { transform: translateX(10px); }
.translate07 { transform: translateX(20px); }
.translate08 { transform: translateX(30px); }
.translate09 { transform: translateX(40px); }
.translate10 { transform: translateX(50px); }
translate11
translate12
translate13
translate14
translate15
.translate11 { transform: translateY(10px); }
.translate12 { transform: translateY(20px); }
.translate13 { transform: translateY(30px); }
.translate14 { transform: translateY(40px); }
.translate15 { transform: translateY(50px); }
translate16
translate17
translate18
translate19
translate20
.translate16 { transform: translateZ(10px); opacity: .6; }
.translate17 { transform: translateZ(30px); opacity: .6; }
.translate18 { transform: translateZ(50px); opacity: .6; }
.translate19 { transform: translateZ(70px); opacity: .6; }
.translate20 { transform: translateZ(90px); opacity: .6; }
translate21
translate22
translate23
translate24
translate25
.translate21 { transform: translateZ(-10px); opacity: .6; }
.translate22 { transform: translateZ(-30px); opacity: .6; }
.translate23 { transform: translateZ(-50px); opacity: .6; }
.translate24 { transform: translateZ(-70px); opacity: .6; }
.translate25 { transform: translateZ(-90px); opacity: .6; }


scale

Porperty Sample Description
scale transform: scale(2, 2); 선택한 요소의 X축, Y축 확대를 나타냅니다.
scale3d transform: scale3d(2, 2, 2); 선택한 요소의 X축, Y축, Z축 확대를 나타냅니다.
scaleX transform: scaleX(2); 선택한 요소의 X축 확대를 나타냅니다.
scaleY transform: scaleY(2); 선택한 요소의 Y축 확대를 나타냅니다.
scaleZ transform: scaleZ(2); 선택한 요소의 Z축 확대를 나타냅니다.

scale01
scale02
scale03
scale04
scale05
.scale01 {transform: scale(1.1, 1.1);}
.scale02 {transform: scale(1.2, 1.2);}
.scale03 {transform: scale(1.3, 1.3);}
.scale04 {transform: scale(1.4, 1.4);}
.scale05 {transform: scale(1.5, 1.5);}

scale06
scale07
scale08
scale09
scale10
.scale06 {transform: scale(0.9, 0.9);}
.scale07 {transform: scale(0.8, 0.8);}
.scale08 {transform: scale(0.7, 0.7);}
.scale09 {transform: scale(0.6, 0.6);}
.scale10 {transform: scale(0.5, 0.5);}

scale11
scale12
scale13
scale14
scale15
.scale06 {transform: scaleX(1.1);}
.scale07 {transform: scaleX(1.2);}
.scale08 {transform: scaleX(1.3);}
.scale09 {transform: scaleX(1.4);}
.scale10 {transform: scaleX(1.5);}

scale16
scale17
scale18
scale19
scale20
.scale16 {transform: scaleY(1.1);}
.scale17 {transform: scaleY(1.2);}
.scale18 {transform: scaleY(1.3);}
.scale19 {transform: scaleY(1.4);}
.scale20 {transform: scaleY(1.5);}


rotate

Porperty Sample Description
rotate transform: rotate(10deg); 선택한 요소의 회전을 나타냅니다.
rotate3d transform: rotate3d(0, 1, 0, 10deg); 선택한 요소의 3d회전을 나타냅니다.
rotateX transform: rotateX(10deg); 선택한 요소의 X축 회전을 나타냅니다.
rotateY transform: rotateY(10deg); 선택한 요소의 Y축 회전을 나타냅니다.
rotateZ transform: rotateZ(10deg); 선택한 요소의 Z축 회전을 나타냅니다.

rotate01
rotate02
rotate03
rotate04
rotate05
.rotate01 { transform: rotate(10deg); }
.rotate02 { transform: rotate(20deg); }
.rotate03 { transform: rotate(30deg); }
.rotate04 { transform: rotate(40deg); }
.rotate05 { animation: rotate05 2s infinite }
@keyframes rotate05 {
0% { transform: rotate(0deg);}
50% { transform: rotate(50deg);}
100% { transform: rotate(0deg);}
}

rotate06
rotate07
rotate08
rotate09
rotate10
.rotate06 { transform: rotateX(10deg); }
.rotate07 { transform: rotateX(20deg); }
.rotate08 { transform: rotateX(30deg); }
.rotate09 { transform: rotateX(40deg); }
.rotate10 { transform: rotateX(50deg); animation: rotate10 2s infinite}
@keyframes rotate10 {
0% { transform: rotateX(0deg);}
50% { transform: rotateX(750deg);}
100% { transform: rotateX(0deg);}
}

rotate11
rotate12
rotate13
rotate14
rotate15
.rotate11 { transform: rotateY(10deg); }
.rotate12 { transform: rotateY(20deg); }
.rotate13 { transform: rotateY(30deg); }
.rotate14 { transform: rotateY(40deg); }
.rotate15 { transform: rotateY(50deg); animation: rotate15 2s infinite }
@keyframes rotate15 {
0% { transform: rotateY(0deg);}
50% { transform: rotateY(50deg);}
100% { transform: rotateY(0deg);}
}

rotate16
rotate17
rotate18
rotate19
rotate20
.rotate16 { transform: rotateZ(10deg); }
.rotate17 { transform: rotateZ(20deg); }
.rotate18 { transform: rotateZ(30deg); }
.rotate19 { transform: rotateZ(40deg); }
.rotate20 { transform: rotateZ(50deg); animation: rotate15 2s infinite }
@keyframes rotate20 {
0% { transform: rotateZ(0deg);}
50% { transform: rotateZ(50deg);}
100% { transform: rotateZ(0deg);}
}

rotate21
rotate22
rotate23
rotate24
rotate25
.rotate21 { transform: rotate3d(0,1,1,10deg); }
.rotate22 { transform: rotate3d(0,1,1,30deg); }
.rotate23 { transform: rotate3d(0,1,1,40deg); }
.rotate24 { transform: rotate3d(0,1,1,70deg); }
.rotate25 { transform: rotate3d(0,1,1,90deg); animation: rotate25 2s infinite }
@keyframes rotate25 {
0% { transform: rotate3d(0,1,1,10deg);}
50% { transform: rotate3d(0,1,1,90deg);}
100% { transform: rotate3d(0,1,1,10deg);}
}


skew

Porperty Sample Description
skew transform: skew(10deg, 10deg); 선택한 요소의 X축, Y축 기울기를 나타냅니다.
skewX transform: skewX(10deg); 선택한 요소의 X축 기울기를 나타냅니다.
skewY transform: skewY(10deg); 선택한 요소의 Y축 기울기를 나타냅니다.
rotateZ transform: rotateZ(10deg); 선택한 요소의 Z축 회전을 나타냅니다.

skew01
skew02
skew03
skew04
skew05
.skew01 { transform: skew(10deg, 10deg); }
.skew02 { transform: skew(20deg, 20deg); }
.skew03 { transform: skew(30deg, 30deg); }
.skew04 { transform: skew(40deg, 40deg); }
.skew05 { transform: skew(50deg, 50deg); }

skew06
skew07
skew08
skew09
skew10
.skew06 { transform: skewX(10deg); }
.skew07 { transform: skewX(20deg); }
.skew08 { transform: skewX(30deg); }
.skew09 { transform: skewX(40deg); }
.skew10 { transform: skewX(50deg); }

skew11
skew12
skew13
skew14
skew15
.skew11 { transform: skewY(10deg); }
.skew12 { transform: skewY(20deg); }
.skew13 { transform: skewY(30deg); }
.skew14 { transform: skewY(40deg); }
.skew15 { transform: skewY(50deg); }


transform

transform1
transform2
transform3
transform4
transform5
.transform1 { transform: scale(1.1) translate(10px) skewY(30deg) rotate3d(0,1,1,30deg); }
.transform2 { transform: scale(0.5) translate(80px) skewX(10deg) rotate3d(2,2,2,50deg); }
.transform3 { transform: scale(0.6) translate(10px) skew(-50deg) rotate3d(5,5,5,5deg); }
.transform4 { transform: scale(0.6) translate(10px) skewX(50deg) rotate3d(-50,-50,-50,-50deg); }
.transform5 { transform: scale(1.1) translate(0px) skewY(-10deg) rotate3d(0,0,0,0deg); }


transform Animation

transform6
transform7
transform8
transform9
transform10
.transform6 { animation: transform6 3s 10 ease; }
@keyframes transform6 {
0% { background: #4facfe; border-radius: 100%; transform: scale(1) }
20% { background: #4facfe;  border-radius: 100%; transform: scale(.5) }
40% { background: #ffb199;  border-radius: 100%; transform: scale(1) }
60% { background: #ffb199;  border-radius: 20%; transform: scale(1.5) }
80% { background: #4facfe;  border-radius: 100%; transform: scale(.5) }
100% { background: #4facfe;  border-radius: 100%; transform: scale(1) }
}
.transform7 { animation: transform7 5s 10 ease; }
@keyframes transform7 {
0% { background: #fee140; width: 140px; border-radius: 50%; transform: rotateY(0deg) }
40% { background: #4facfe; width: 100px; border-radius: 50%; transform: rotateY(800deg) }
60% { background: #fee140; width: 180px; border-radius: 50%; transform: rotateY(500deg) }
100% { background: #30cfd0; width: 140px; border-radius: 50%; transform: rotateY(0deg) }
}
.transform8 { animation: transform8 5s 10 ease; }
.An3 > div {
background-image: radial-gradient(#84ffff 20%, #18ffff 20% 40%, #00e5ff 40% 60%, #00b8d4 60% 80%, #0091ea 80%);
border-radius: 50%;
}
@keyframes transform8 {
0% { transform: skewX(0deg) rotate3d(0,0,0,0deg); }
50% { transform: skewX(20deg) rotate3d(1,1,1,600deg); }
100% { transform: skewX(0deg) rotate3d(0,0,0,0deg); }
}
.transform9 { animation: transform9 5s 10 ease; }
.An4 > div {
border-radius: 50%;
}
@keyframes transform9 {
0% { background-image: linear-gradient(to right, #f83600 0%, #f9d423 100%);
}
30% { background-image: linear-gradient(to right, #f83600 0%, #f9d423 100%);
transform: translate(0,-50px) scale(1.2)}
50% { background-image: linear-gradient(to right, #f83600 0%, #f9d423 100%);
transform: translate(0,50px) scale(1); border-radius: }
70% { background-image: linear-gradient(to top, #09203f 0%, #537895 100%);
transform: translate(0,-50px) scale(1.2)}
100% { background-image: linear-gradient(to top, #09203f 0%, #537895 100%);
transform: translate(0,50px) scale(1)}
}
.transform10 { animation: transform10 2s 1 ease; }
.An5 > div {
background: #ffc107;
border-radius: 50%; }
@keyframes transform10 {
0% { transform: translate(-100px, -400px) }
5% { transform: translate(0, 0px) }
10% { transform: translate(100px, -300px) }
15% { transform: translate(0, 0px) }
20% { transform: translate(-70px, -250px) }
25% { transform: translate(0, 0px) }
30% { transform: translate(30px, -200px) }
35% { transform: translate(0, 0px) }
40% { transform: translate(-30px, -150px) }
45% { transform: translate(0, 0px) }
50% { transform: translate(25px, -100px) }
55% { transform: translate(0, 0px) }
60% { transform: translate(-15px, -85px) }
65% { transform: translate(0, 0px) }
70% { transform: translate(10px, -60px) }
75% { transform: translate(0, 0px) }
80% { transform: translate(0, -55px) }
85% { transform: translate(0, 0px) }
90% { transform: translate(0, -50px) }
100% { transform: translate(0, 0) }