transition은 바뀌기 전 상태의 객체에게 부여해준다.
transition-property: width, background;
가로사이즈와 배경을 애니메이션에 적용하겠다.
transition-duration: 1s;
1초에 걸쳐서 바뀌게 하겠다.
이거를 합치면 아래와 같이도 가능하다.
transition : width 1s, background 1s;
이거를 또 모든 속성에 전환하겠다라고 하면
transition : 1s; 가 가능하다.
ease, ease-out : 빠르게 - 느리게 // 이 두 가지는 약간 다르다.
ease-in : 느리게- 빠르게
linear : 일정하게
이런것을 눈으로 보고 싶으면 easing function을 검색해서 표 + 애니메이션을 볼 수 있다.
합치면
transition: 1s ease; 이렇게 적용 가능하다.
transition step을 이용해서 단계별로 뚝뚝 끊어져서 보이게 가능.
딜레이를 넣으려면
transition : 지속시간, 딜레이;
즉, transition : 2s 1s; 이런식으로 가능.
transform
이동하거나 회전하거나 크기를 키우거나 비틀 때 사용한다.
비틀기의 경우 skewX(45deg) 이런식으로 축을 설정해서 비틀기 가능하다.
div {
width: 100px;
height: 100px;
background: orange;
margin: 20px 20px;
transition: 0.3s ease-in;
}
div:hover {
transform: translate(100px, 100px) rotate(45deg) scale(1.5) skew(45deg);
}
회전 중심축을 설정할 수 있다.
transform-origin: 100% 100%; // 우측하단이다. right bottom이나 bottom right로 하면 우측하단이 마찬가지로 된다.
기본은 50% 50%으로 되어 있다.
기준은 아래와 같다.
Y축
X축 ---------------------->
↓
transform3D
perspective를 넣어줘야 원근감을 느낄 수 있고
rotateY(45deg) 이런식으로 Y축을 기준으로 45도 돌린다 라고 이해하면 된다.
주의해야 되는 건 : perspective가 앞에 있어야 한다는 것.(함수처럼 사용 transform: perspective( ))
혹은 부모 자식간 관계면 부모에 적용해야 한다. (후손 여러대에 적용할 때. 속성처럼 사용 perspective)
div {
width: 100px;
height: 100px;
background: orange;
margin: 20px 20px;
transition: 0.3s ease-in;
}
div:hover {
transform: perspective(500px) rotateY(45deg)
}
자식도 3차원을 반영하겠다 하면
transform-style: preserve-3d를 부모요소에 추가해야 한다. 부모에 했다고 후손들에 다 적용되는 건 아니고
부모한테 해야 자식한테 적용된다.
animation
div:hover {
animation: test 2s infinite alternate ease both;
}
@keyframes test {
0% {width:100px;}
100% {width:50px;}
}
.box {
width: 100px;
height: 100px;
background: orange;
margin: 20px 20px;
/* transition: 0.3s ease-in; */
animation : movemove 2s;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
@keyframes movemove {
0% {transform : translate(0, 0)}
25% {transform : translate(100px, 0)}
50% {transform : translate(100px, 100px)}
75% {transform : translate(0, 100px)}
100% {transform : translate(0, 0)}
}
animation-fillmode 특성을 추가하면 애니메이션이 끝나는 위치에 멈추게 할 수 있다. 보통 both를 쓴다고 생각하자.
애니메이션에 마우스 올렸을때라던지 멈추게 할 수도 있다.
animation-play-state : paused를 hover에 추가하는 방식으로 말이다.
'Stack & Tool > HTML, CSS' 카테고리의 다른 글
grid (0) | 2021.05.21 |
---|---|
float, flex비교 (0) | 2021.05.20 |
background-attachment : fixed를 이용한 세련된 홈페이지 + background-size (0) | 2021.05.20 |
float:left와 clear:left (0) | 2021.05.19 |
em과 rem / vw, vh (0) | 2021.05.19 |
댓글