EverGiver
transition 속성 본문
728x90
transition이란
- 웹 요소의 배경색을 바꾸거나 도형의 테두리를 사각형에서 원형으로 바꾸는 것처럼 스타일 속성이 바뀌는 것
- 웹 요소의 스타일 속성이 시간에 따라 바뀌는 것
- 트랜지션은 마이크로소프트 엣지와 익스플로러 10 이상에서 지원되며, 대부분의 최신 브라우저에서는 모두 지원한다.
★ 주의점
: 동작구문에는 넣지 말 것! (무조건 transition은 태그에 넣어준다)
트랜지션과 속성
종류 | 설명 |
transition-property | 트랜지션의 대상을 지정한다. |
transition-duration | 트랜지션의 실행할 시간을 지정한다. |
transition-timing-function | 트랜지션의 실행 형태를 지정한다. |
transition-delay | 트랜지션의 지연 시간을 지정한다. |
transition | transition-property, transition-duration, transition-timing-function, transition-delay 속성을 한꺼번에 정한다. |
- 트랜지션의 대상을 지정하는 transition-property 속성
- 속성값transition-property: all ¦ none ¦ <속성 이름>
종류 설명 all all 값을 사용하거나 transition-property를 생략할 경우 요소의 모든 속성이 트랜지션 대상이 된다.
(기본값)none 트랜지션을 하는 동안 아무 속성도 바뀌지 않는다. 속성 이름 트랜지션 효과를 적용할 속성을 지정한다.
속성이 여럿일 경우 쉼표(,)로 구분하여 나열한다.transition-property: all; /* 해당 요소의 모든 속성에 트랜지션 적용 */ transition-property: background-color; /* 해당 요소의 배경색에 트랜지션 적용 */ transition-property: width, height; /* 해당 요소의 너비와 높이에 트랜지션 적용 */
- hover, active 구문과 같이 사용하면 동작 구문에 작성한 css속성들의 애니메이션 시간을 개별적으로 적용시켜 줄 수 있다.
cf) 동작
- hover
: 마우스를 올렸을 때 동작
- active
: 마우스를 클릭했을 때 동작 - 트랜지션의 진행 시간을 지정하는 transition-duration 속성
- 진행 시간을 지정해야 속성이 자연스럽게 바뀌는 애니메이션 효과를 만들 수 있다.
- 지정할 수 있는 시간 단위는 초(second) 또는 밀리초(millisecond)이다.
ex) transition-property:width, background-color, font-size;transition-duration: <시간>
transition-duration:1s,3s,10s
→ width는 1초 동안, background-color는 3초 동안, font-size는 5초 동안 변화한다. - 트랜지션의 속도 곡선을 지정하는 transition-timing-function 속성
- 트랜지션 효과의 시작, 중간, 끝에서 속도를 지정해 전체 속도 곡선을 만들 수 있다.
- 속성 값transition-timing-function: linear ¦ ease ¦ ease-in ¦ ease-out ¦ ease-in-out ¦ cubic-bezier(n, n, n, n)
종류 설명 ease 처음에는 천천히 시작하고 점점 빨라지다가 마지막엔 천천히 끝낸다. (기본값) linear 시작부터 끝까지 똑같은 속도록 진행한다. ease-in 느리게 시작한다. ease-out 느리게 끝낸다. ease-in-out 느리게 시작하고 느리게 끝낸다. cubic-bezier(n, n, n, n) 베지에 함수를 정의해서 사용한다. 이때 n값은 0~1 사이만 사용할 수 있다. <!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8"> <title>transition #2</title> <style> *{margin:0;padding:0} #a{width:900px;border:4px solid red;} #a div{width:100px;height:100px; background-color:#123456; margin-top:30px;transition:3s;} #a:hover .b{width:900px;} #a div:nth-child(1){transition-timing-function:linear;} #a div:nth-child(2){transition-timing-function:ease-in;} #a div:nth-child(3){transition-timing-function:ease-out;} #a div:nth-child(4){transition-timing-function:ease-in-out} </style> </head> <bod> <div id="a"> <div class="b"></div> <div class="b"></div> <div class="b"></div> <div class="b"></div> </div> </bod> </html>
- 트랜지션의 지연 시간을 설정하는 transition-delay 속성
- 트랜지션 효과를 언제부터 시작할 것인지 설정한다.
- 지정한 시간만큼 기다렸다가 트랜지션이 시작된다.
- 사용할 수 있는 값은 초(s)나 밀리초(ms)이며, 기본값은 0이다.
transition-delay: <시간>
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8"> <title>transition #1</title> <style> *{margin:0;padding:0;} #a{width:400px;height:400px; background-color: #123456; transition:3s;} #a:hover{/*background-color:red;margin-left:200px;*/ border-radius:300px;} #b{width:400px;height:400px; background-color:#987654; transition:1s; transition-delay:5s;} #b:hover{margin-left:100px;} </style> </head> <body> <div id="a">div태그 입니다</div> <div id="b">div2태그 입니다</div> </body> </html>
- 트랜지션의 속성을 한꺼번에 표기하는 transition 속성
- 트랜지션의 적용 대상이 전체이고 각각의 진행 시간이 같다면 transition 속성으로 한꺼번에 지정하는 것이 편리하다.
- 속성을 작성하는 순서는 상관없다.transition: <transition-property값> ¦ <transition-duration값> ¦ <transition-timing-function값> ¦ <transition-delay값>
- 시간 값을 사용하는 속성이 2개(진행 시간,지연 시간)이므로 사진값이 2개 있다면 앞에 오는 시간값을 transition-duration 속성으로, 뒤에 오는 시간 값은 transition-delay 속성으로 간주한다.
728x90
'Front-End (웹) > CSS' 카테고리의 다른 글
드롭다운 메뉴 (1) | 2021.09.01 |
---|---|
z-index 속성 (0) | 2021.09.01 |
position 속성 (0) | 2021.08.25 |
슬라이드 쇼 (0) | 2021.08.25 |
cursor 속성 (0) | 2021.08.19 |
Comments