>  기사  >  웹 프론트엔드  >  순수한 CSS를 사용하여 움직이는 흰 토끼 애니메이션 효과를 얻는 방법

순수한 CSS를 사용하여 움직이는 흰 토끼 애니메이션 효과를 얻는 방법

不言
不言원래의
2018-08-14 10:13:144934검색

이 기사의 내용은 움직이는 흰 토끼의 애니메이션 효과를 구현하기 위해 순수한 CSS를 사용하는 방법에 대한 것입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

효과 미리보기

순수한 CSS를 사용하여 움직이는 흰 토끼 애니메이션 효과를 얻는 방법

코드 해석

돔 정의, 페이지에는 각각 토끼와 구름을 나타내는 2개의 요소가 포함되어 있습니다:

<div></div>
<div></div>

중앙 디스플레이:

body {
    margin: 0;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(midnightblue, black);
    font-size: 30px;
}

토끼의 몸 그리기:

.rabbit {
    width: 5em;
    height: 3em;
    color: whitesmoke;
    background: currentColor;
    border-radius: 70% 90% 60% 50%;
}

방사형 그라디언트를 사용하여 토끼 눈 그리기:

.rabbit {
    background: 
        radial-gradient(
            circle at 4.2em 1.4em,
            #333 0.15em,
            transparent 0.15em
        ), /* eye */
        currentColor;
}

의사 요소를 사용하여 토끼의 오른쪽 귀 그리기:

.rabbit::before {
    content: '';
    position: absolute;
    width: 0.75em;
    height: 2em;
    background-color: currentColor;
    border-radius: 50% 100% 0 0;
    transform: rotate(-30deg);
    top: -1em;
    right: 1em;
}

그림자를 사용하여 토끼의 왼쪽 귀 그리기:

.rabbit::before {
    border: 0.1em solid;
    border-color: gainsboro transparent transparent gainsboro;
    box-shadow: -0.5em 0 0 -0.1em;
}

의사 요소를 사용하여 토끼 꼬리 그리기:

.rabbit::after {
    content: '';
    position: absolute;
    width: 1em;
    height: 1em;
    background-color: currentColor;
    border-radius: 50%;
    left: -0.3em;
    top: 0.5em;
}

그리기 그림자가 있는 토끼 다리:

.rabbit::after {
    box-shadow: 
        0.5em 1em 0,
        4em 1em 0 -0.2em,
        4em 1em 0 -0.2em;
}

토끼의 그림자 그리기:

.rabbit {
    box-shadow: -0.2em 1em 0 -0.75em #333;
}

구름 그리기:

.clouds {
    width: 2em;
    height: 2em;
    color: whitesmoke;
    background: currentColor;
    border-radius: 100% 100% 0 0;
    transform: translate(0, -5em);
}

.clouds::before,
.clouds::after {
    content: '';
    position: absolute;
    background-color: currentColor;
    bottom: 0;
}

.clouds::before {
    width: 1.25em;
    height: 1.25em;
    border-radius: 100% 100% 0 100%;
    left: -30%;
}

.clouds::after {
    width: 1.5em;
    height: 1.5em;
    border-radius: 100% 100% 100% 0;
    right: -30%;
}

그림자가 있는 구름 2개 더 그리기:

.rabbit {
    z-index: 1;
}

.clouds,
.clouds::before,
.clouds::after {
    box-shadow: 
    5em 2em 0 -0.3em,
    -2em 2em 0 0;
}

다음으로 애니메이션 효과를 만듭니다.
토끼 점프 애니메이션 추가:

.rabbit {
    animation: hop 3s linear infinite;
}

@keyframes hop {
    20% {
        transform: rotate(-10deg) translate(1em, -2em);
        box-shadow: -0.2em 1em 0 -1em #333;
    }

    40% {
        transform: rotate(10deg) translate(3em, -4em);
        box-shadow: -0.2em 3.25em 0 -1.1em #333;
    }

    60%, 75% {
        transform: rotate(0deg) translate(4em, 0);
        box-shadow: -0.2em 1em 0 -0.75em #333;
    }
}

토끼 다리의 스트레칭 애니메이션 추가:

.rabbit::after {
    animation: kick 3s infinite linear;
}

@keyframes kick {
    40% {
        box-shadow: 
            0.5em 2em 0,
            4.2em 1.75em 0 -0.2em,
            4.4em 1.9em 0 -0.2em;
    }
}

구름이 펄럭이는 애니메이션 추가:

.clouds {
    animation: cloudy 3s infinite linear forwards;
    filter: opacity(0);
}

@keyframes cloudy {
    40% {
        transform: translate(-3em, -5em);
        filter: opacity(0.75);
    }

    55% {
        transform: translate(-4em, -5em);
        filter: opacity(0);
    }
}

끝났습니다!

관련 추천:

CSS를 사용하여 트럭 로더의 효과를 얻는 방법

CSS 스타일을 사용하여 멋진 양식 스타일을 만드는 방법은 무엇입니까? (코드 샘플)

웹 페이지가 로드될 때 스타일 효과 CSS를 구현하는 방법은 무엇입니까? (다양한 스타일 예시)

위 내용은 순수한 CSS를 사용하여 움직이는 흰 토끼 애니메이션 효과를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.