JAVA 유용한 클래스

CSS Transition(부드러운 애니메이션 만들기) - 18

mynote6676 2025. 6. 4. 21:05
<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <style>
        .box {
            width: 100px;
            height: 100px;
            background-color: #FF6347;
            /* 토마토 색상 */
            transition-property: width;
            /* width 속성에 전환 효과 적용 */
            transition-duration: 1.5s;
            /* 1.5초 동안 변화 */
        }

        .box:hover {
            width: 200px;
            /* 마우스를 올리면 가로 크기가 200px로 변경 */
        }
    </style>
</head>

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

</html>

CSS의 transition 속성은 웹 요소의 스타일 변화를 부드럽게 만들어주는 강력한 도구입니다. 예를 들어, 버튼에 마우스를 

올렸을 때 색상이 서서히 변하거나, 크기가 자연스럽게 커지는 효과를 줄 수 있습니다.

 

1. CSS Transition의 기본 구조

 

transition 속성은 요소의 스타일 변화를 부드럽게 전환(transition) 하도록  설정합니다.

이 속성은 다음과 같은 4가지 주요 속성으로 구성됩니다.

transition-property: 어떤 CSS 속성을 전환할지 지정합니다. (예 : width,opacity,backgroud-color등)

 

transition-duration: 전환 효과가 얼마나 오래 지속될지 시간을 지정합니다.(예 : 2s = 2초)

 

transition-timing-function: 전환 효과가 시작되기 전 대기 시간을 설정합니다.(예 : 1s = 1 초 대기 )

이 4 가지 속성을 한번에 설정할 수도 있습니다. 예를 들어;

 

transition-delay : 전환 효과가 시작되기 전 대기 시간을 설정합니다.(예: 1s = 1초 대기 )

이 4가지 속성을 한 번에 설정할 수도 있습니다. 예를 들어: 

transition: width 2s ease 1s;

 

2. Transition 속성 하나씩 살펴보기

(1) transition-property와 transition-duration

먼저, transition-property는 어떤 속성을 부드럽게 변화시킬지 정합니다. transition-duration은 그변화가 얼마나 오래 걸릴지 설정하죠.

 

(2) transition-timing-function: 속도 패턴 설정

https://developer.mozilla.org/en-US/docs/Web/CSS/transition-timing-function

 

transition-timing-function - CSS: Cascading Style Sheets | MDN

The transition-timing-function CSS property sets how intermediate values are calculated for CSS properties being affected by a transition effect.

developer.mozilla.org

transition-timing-funtion은 전환 효과의 속도 패턴을 설정합니다. 주요 값은 다음과 같습니다.

- esae : 천천히 시작해서 중간에  빨라지고, 끝에서 다시 느려짐(기본값)

- linear:일정한 속도로 변화.

- ease-in : 천천히 시작해서 점점 빨라짐.

- ease-out :  빠르게 시작해서 점점 느려짐

- ease-in-out : 천천히 시작하고, 천천히 끝남 

- step-start : 변화가 즉시 시작.

- step-end : 변화가 즉시 끝남.

- steps(n,stard/end): n단계로 나눠서 변화.

- cubic-bezier(n,n,n,n) : 사용자 정의 속도 곡선.

728x90