반응형

transition 은 css3에 추가된 속성으로 ie10 이상부터 사용이 가능하다.

 

명시적으로 원하는 영역에 어떤 속성을 움직이게 할지,

언제 애니메이션을 시작하게 할지, 얼마나 애니메이션을 지속할지,

그리고 어떻게 애니메이션을 실행할지에 대한 값을 지정하는 속성이다.

 

속성 설명
transition

transition 속성을 사용하는 축약형으로, 순서대로 작성시

transition: property || duration || timing-function || delay

순서로 작성하게 된다.

transition-property transition 효과를 줄 css 속성을 설정한다.
transition-duration transition 효과가 지속될 시간을 설정한다.
transition-timing-function transition 효과가 실행될 때의 효과를 설정한다. (easing)
transition-delay transition 효과를 시작하기 전까지의 대기 시간을 설정한다.

 

1. transition-property

원하는 css 속성에 transition 효과를 지정할 수 있고

지정한 css 속성만이 transition 효과를 가질 수 있다.

<style>
   .box{margin-bottom:8px; width:50px; height:50px; background:skyblue;}
   .box1{transition-property:all;}   /* 모든 css 속성(all)에 transition을 적용한다. */
   .box2{transition-property:width;}   /* width 속성에만 적용 */
   .box3{transition-property:width, height;}  /* width, height 속성에 적용 */
</style>
<body>
   <div class="box box1"></div>
   <div class="box box2"></div>
   <div class="box box3"></div>
</body>

 

2. transition-duration

transition 효과의 지속 시간을 정한다.

<style>
   .box{
     margin-bottom:8px;
     width:50px;
     height:50px;
     background:skyblue;
     transition-duration:0.5s;  /* transition 효과를 2초 동안 지속 */
   }
   .box1{transition-property:all;}
   .box2{transition-property:width;}
   .box3{transition-property:width, height;}
</style>
<body>
   <div class="box box1"></div>
   <div class="box box2"></div>
   <div class="box box3"></div>
</body>

 

3. transition-timing-function

transition 효과가 일어나는 효과를 줄 수 있다.

기본 값은 ease 효과이고

linear, steps, ease-in, ease-out

그리고 cubic-bezier(n,n,n,n)을 이용해서 원하는 효과를 만들 수도 있다.

<style>
   .box{
     margin-bottom:8px;
     width:50px;
     height:50px;
     background:skyblue;
     transition-duration:0.5s;
   }
   /* 기본 효과인 ease */
   .box1{
     transition-property:all;
   }
   /* ease-in 효과 */
   .box2{
     transition-property:width;
     transition-timing-function:ease-in;
   }
   /* steps 효과 */
   .box3{
     transition-property:width, height;
     transition-timing-function:steps(4, end);
   }
</style>
<body>
   <div class="box box1"></div>
   <div class="box box2"></div>
   <div class="box box3"></div>
</body>

 

4. transition-delay

transition 효과가 일어나기 전 대기 시간을 정한다.

<style>
   .box{
     margin-bottom:8px;
     width:50px;
     height:50px;
     background:skyblue;
     transition-duration:0.5s;
   }
   .box1{
     transition-property:all;
     transition-delay:0.5s;
   }
   .box2{
     transition-property:width;
     transition-timing-function:ease-in;
     transition-delay:0.3s;
   }
   /* transition-delay값 미입력시 delay없음 */
   .box3{
     transition-property:width, height;
     transition-timing-function:steps(4, end);
   }
   
   /* transition 확인을 위한 hover시 효과 적용 */
   .box:hover{width:100px; height:100px; background:red;}
</style>
<body>
   <div class="box box1"></div>
   <div class="box box2"></div>
   <div class="box box3"></div>
</body>

 

위에서 배운 transition 효과를 적용한 화면을 보자면 아래와 같다.

 

첫 번째 상자는 delay가 0.5초가량 된 후 width, height, background의 transition 효과가 적용이되고

 

두 번째 상자는 width값만 ease-is의 효과를 가지며 transition이 적용된다.

 

세 번째 상자는 width, height 값이 steps 효과를 가지며 transition이 적용된다.

 

 

 

 

 

 

 

반응형

+ Recent posts