본문 바로가기
IT/html + css

[CSS] transition 애니메이션과 같이 사용되는 transition 속성 전환

by on sunday 2020. 1. 7.
728x90
반응형

 

transition은 애니메이션 효과를 적용할 때 애니메이션 효과가 일정 시간에 걸쳐서 다양한 방법으로 진행 되도록 하는것 입니다.

 

기본  형식은 아래와 같습니다.

transition : property duration timingfunction delay;

 

transition 속성

transition-property : 원하는 애니메이션 시킬 속성을  입력합니다. (color, background-color, border-radius, position....)

transition-duration : 애니메이션 효과가 몇초동안 실행될지, 시작해서 끝날때까지 시간을 밀리초(ms), 초(s)단위로  설정합니다.

transition-timingfunction : 애니메이션이 적용되는 속도를 지정합니다.(linear, ease(기본값), ease-in, ease-out. ease-in-out)

transition-duration : 애니메이션 효과가 몇초 지난 후 작동 할지 설정합니다.

 

transition-timing-function: linear; -> 등속
transition-timing-function: ease; -> 느리게 시작했다가 빨라졌따가 다시 느려짐
transition-timing-function: ease-in; -> 점점 빨라짐
transition-timing-function: ease-in-out; -> 처음과 끝이 느림
transition-timing-function: ease-out; -> 점점 느려짐

 

 

div .s1를 만들어서 마우스 올렸을때 애니메이션 효과로 

 

transition-property:transform, background;
transition-duration:0.5s;
transition-delay:1s;
transition-timing-function: ease-in;

 

마우스 올린 후 1초 뒤에 0.5초동안 점점 빨라지면서 x축으로 300px 이동하고

배경화면을 분홍색으로 바뀌도록 했습니다.

<body>
<div class="s1"></div>
</body>

<style>

div.s1{transform:translateX(0); width:200px; height:200px; border:1px solid red;
transition-property:transform, background;
transition-duration:0.5s;
transition-delay:1s;
transition-timing-function: ease-in;}

div.s1:hover{transform:translateX(300px); background:pink}

</style>

transition 효과가 적용된 결과 화면 입니다.↓

 

 

transition 속성을 한줄로 작성하는 방법입니다. 값을 지정하지 않으면 기본값으로 설정됩니다.

transition:all 2s ease-out 1s;

애니메이션 효과가 들어가는 모든 속성을 2초동안 1초 뒤에 점점 느려지면서 x축으로 300px 이동하고 배경화면, border-radius가 바뀌도록 작성했습니다.

 

transition: all -> transform, background, border-radius 등 속성을 각각 작성하지 않아도 all 을 입력해주면

모든 속성에 효과가 나타납니다.

<body>
<div class="s2"></div>
</body>

<style type="text/css">

div.s2{transform:translateX(0); width:200px; height:200px; background:#FFFFAF;
transition:all 2s ease-out 1s;  /* property duration function delay */
-webkit-transition:all 2s ease-out 1s;
-moz-transition:all 2s ease-out 1s;
-ms-transition:all 2s ease-out 1s;
-o-transition:all 2s ease-out 1s;}

div.s2:hover{transform:translateX(300px); background:#93CC8D; border-radius:50%;}

</style>

transition 효과가 적용된 결과 화면 입니다.↓

 

필요한 속성만 아래 코드와 같이 간단하게 작성하여 사용한다.(duration값은 필수)

.s1{
transition:all 2s /* property duration (timingfunction기본값 ease) */
}

 

728x90
반응형

댓글