변형 관련 스타일은 이미지로 보면 이해가 안되고 직접 코드를 치고 실행시키며 해봐야 이해가 빠르기에 배운 코드만 올려두겠다!!!
물론 주석 보면 어떤 느낌인지 알지도...???
<h1>2차원 변형</h1>
<h3>좌우로 움직이기</h3>
<img src="../imagens/animal/고.jpg" class="trans-x-2d">
<h3>상하로 움직이기</h3>
<img src="../imagens/animal/고.jpg" class="trans-y-2d">
<h3>상하로 움직이기</h3>
<img src="../imagens/animal/고.jpg" class="trans-xy-2d">
<h3>가로 방향 확대/축소</h3>
<img src="../imagens/animal/고.jpg" class="trans-x-scale-2d">
<h3>세로 방향 확대/축소</h3>
<img src="../imagens/animal/고.jpg" class="trans-y-scale-2d">
<h3>대각선 확대/축소</h3>
<img src="../imagens/animal/고.jpg" class="trans-xy-scale-2d">
<h3>요소 회전</h3>
<img src="../imagens/animal/고.jpg" class="trans-rotate">
<hr>
<hr>
<hr>
<h1>3차원 변형</h1>
<h3>x, y, z축 이동</h3>
<img src="../imagens/img/8.jpg" class="trans-3d">
<h3>x축 회전</h3>
<img src="../imagens/img/7.jpg" class="trans-rotate-x-3d">
<h3>y축 회전</h3>
<img src="../imagens/img/7.jpg" class="trans-rotate-y-3d">
<h3>z축 회전</h3>
<img src="../imagens/img/7.jpg" class="trans-rotate-z-3d">
<hr>
<hr>
<hr>
<h1>변형 사이에 지연 시간 추가하기(transition)</h1>
<div class="box test1"></div>
<hr>
<div class="box test2">여기가 위</div>
<h4>스타일 변형 진행속도 조정</h4>
<div class="box test3">여기가 위</div>
<hr>
<h4>스타일 변형 딜레이 (일정 시간 후 변형)</h4>
<div class="box test4">여기가 위</div>
img {
width: 250px;
height: auto;
}
/* transform : 병형과 관련된 속성 */
/* CSS 속성 작성시 크로스 브라우저(브라우저가 달라지는 경우) 처리방법
-mx- : 마이크로 소프트(익스플로어, 엣지)
-webkit- : 크롬, 사파리
-o- : 오페라
-moz- : 파이어폭스
*/
/* 음수, 양수로 방향지정 */
.trans-x-2d:hover {
-ms-transform: translateX(100px);
-webkit-transform: translateX(100px);
transform: translateX(100px);
}
/* 상하 이동 */
.trans-y-2d:hover {
-ms-transform: translateY(100px);
-webkit-transform: translateY(100px);
transform: translateY(100px);
}
/* 대각선 이동 */
.trans-xy-2d:hover {
-ms-transform: translate(100px, -100px);
-webkit-transform: translate(100px, -100px);
transform: translate(100px, -100px);
}
/* scale(배율) */
/* 가로방향 확대/축소 */
.trans-x-scale-2d:hover {
transform: scaleX(2);
margin-left: 200px;
}
/* 세로방향 확대/축소 */
.trans-y-scale-2d:hover {
transform: scaleY(2);
margin-left: 200px;
}
/* 대각선 확대/축소 */
.trans-xy-scale-2d:hover {
transform: scale(2,2);
margin-left: 200px;
}
/* 요소 회전 */
.trans-rotate:hover {
transform: rotate(180deg);
}
/* x, y, z축 이동 */
.trans-3d:hover {
/* perspective(z축의 길이) : 원근법 적용 */
transform: perspective(300px) translate3d(50px, 50px, 100px);
}
.trans-rotate-x-3d {
transform: perspective(300px) rotateX(45deg);
}
.trans-rotate-y-3d {
transform: perspective(300px) rotateY(45deg);
}
.trans-rotate-z-3d {
transform: perspective(300px) rotateZ(45deg);
}
/* --------------------------------------------- */
/* transition */
.box {
width: 150px;
height: 150px;
border: 1px solid black;
background-color: red;
/* 스타일이 변경되는 시간 지정 */
transition-duration: 0.5s;
}
.test1:hover {
background-color: yellow;
}
.test2:hover {
transition-duration: 1s;
}
.test2:hover {
transform: rotate(360deg);
background-color: skyblue;
/* 테두리 모서리 곡률 속성 */
border-radius: 50%;
}
.test3 {
transition-duration: 3s;
/* ease(기본값) / ease-in / ease-in-out / liner : 등속*/
transition-timing-function: ease-in-out;
}
.test3:hover {
background-color: green;
transform: rotate(720deg);
}
.test4 {
transition-delay: 2s;
}
.test4:hover {
transform: translateX(100px);
}