본문 바로가기
Frontend/CSS

CSS3로 동적 변화를 만들어보자 - 2. Transition

by 코딩쥐 2024. 7. 8.

CSS3로 만들어 낼 수 있는 동적 변화는 transform(변환), transition(전환) 그리고 animation(애니메이션)이다.

 

Transition

HTML태그에 적용된 CSS 프로퍼티 값이 변할 때, 변화를 서서히 진행하여 애니메이션 효과를 발생시킨다. 복잡하지 않은 단순한 애니메이션에서 사용된다. 

  • transition: 전환프로퍼티 전환시간 timing-function값 지연시간;
    transition에 전환프로퍼티(전환할 항목)과 전환시간을 한번에 적을 수도 있고 따로 적을 수도 있다. 만약 전부 다 속성으로 지정하고 싶을 경우에는 all을 사용할 수 있지만, 세세한 duration 조정이 불가능하다. 
    • transition-property: 전환할 프로퍼티;
    • transition-duration: 애니메이션이 전환되는데 걸리는 시간; 

transition의 경우에는 전환되는 시간이 처음부터 끝까지 동일하게 흘러가게할지 아니면 다르게 흘러가게 할지 여부를 정할 수 있다.

  • transition-timing-function: 값;
설명
ease 기본값으로, 처음에는 천천히 시작해서 빠르게 효과를 주었다가 천천히 끝남 
linear 처음부터 끝까지 동일한 속도
ease-in 시작을 느리게 설정
ease-out 끝을 느리게 설정
ease-in-out 시작과 끝을 느리게 설정
cubic-bezier(n,n,n,n) 값을 설정할 수 있음

 

cubic-bezier의 경우 확인해보고 값을 가져올 수 있는 사이트가 있으니 이용해도 괜찮고, transition-timing-function을 설정하면 웹 페이지 개발자도구 스타일에서 직접 설정해서 값을 가져올 수 있다.

transition은 transition-delay를 통하여 전환시간을 지연시킬 수 있다. 

  • transition-delay: 값
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .transition{
            width: 100px;
            height: 100px;
            background-color: lightcoral;
            border: 1px solid black;
            transition-property: width, height;
            transition-duration: 2s, 1s;
            transition-timing-function: ease-in;
            transition-delay: 1s;
        }
        .transition:hover{
            width:200px;
            height: 120px;
        }
    </style>
</head>
<body>
     <div class="transition"></div>
</body>
</html>