>웹 프론트엔드 >CSS 튜토리얼 >CSS3 애니메이션에서 원형 운동 궤적 구현

CSS3 애니메이션에서 원형 운동 궤적 구현

一个新手
一个新手원래의
2017-10-20 09:32:134026검색

css3에서 애니메이션은 @keyframes를 통해 정의되며 애니메이션은 애니메이션 효과를 얻기 위해 애니메이션 속성을 설정합니다.

애니메이션 속성에서는 애니메이션 이름, 전체 애니메이션의 실행 시간, 애니메이션의 속도 곡선을 지정할 수 있습니다. 움직임, 지연 시간, 재생 횟수 등.

animation

animation은 복합 속성으로 다음과 같은 애니메이션 속성을 포함합니다.

  • animation-name ---------------------------애니메이션 이름을 지정합니다.

  • animation-duration ---------------------------------애니메이션이 한 번 완료되는 시간을 규정합니다

  • animation-timing -function --------------애니메이션의 동작 속도 곡선을 지정합니다

  • animation-delay-- ----------- -------------애니메이션 지연 시간 지정

  • animation-iteration -count------------ ----------애니메이션 재생 횟수 지정

  • animation-direction ----------- ---- --다음 주기에서 애니메이션이 역방향으로 시작할지 여부를 지정합니다

  • animation-fill-mode ---------- ----------- 애니메이션 시간 이외의 상태를 지정합니다

  • animation-play-state ---------- ----------------- 애니메이션 실행을 지정하고 Pause

animation-timing-function

은 애니메이션의 속도 곡선을 지정합니다. 기본값은 "편함"입니다. 일반적으로 사용되는 동작 속도 곡선에는 다음과 같은 유형이 있습니다.

  • 선형: 선형 전환.

  • ease-in: 느린 속도에서 빠른 속도로.

  • ease-out: 빠른 것에서 느린 것까지.

  • ease-in-out: 느린 것에서 빠른 것, 그리고 다시 느린 것.

베지어 곡선을 직접 사용하여 실행 속도 곡선을 지정할 수도 있습니다. 베지어 곡선의 4가지 값은 [0, 1] 간격 내에 있어야 합니다.

animation-direction

다음 주기에서 애니메이션을 역방향으로 재생할지 여부를 지정합니다. 기본값은 "보통"입니다.

  • reverse: 반대 방향으로 이동

  • alternate: 먼저 정방향으로 이동한 다음 반대 방향으로 연속 교대

  • alternate-reverse: 먼저 역방향으로 이동한 다음 정방향으로 이동 , 연속 교대

animation-fill -mode

은 애니메이션 시간 이외의 개체 상태를 지정합니다. 일반적으로 사용되는 값은 다음과 같습니다.

  • none: 기본값

  • forwards: 객체 상태를 애니메이션이 끝난 상태로 설정

  • backwards: 객체 상태를 애니메이션이 끝난 상태로 설정 애니메이션의 시작 부분

원형 운동 궤적

구현 코드는 다음과 같습니다.

<!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>沿圆形轨迹运动</title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        html,body{
            height: 100%;
        }
        #trajectory {
            width: 300px;
            height: 300px;
            border: 4px solid #949494;
            border-radius: 50%;
            position: relative;
            left: calc(50% - 153px);
            top:calc(50% - 153px);
        }
        @keyframes moveX{
            0% {left: -22px;}
            100% {left: 282px;}
        }
        @keyframes moveY{
            0% {top: -22px;}
            100% {top: 282px;}
        }
        #move {
            width: 40px;
            height: 40px;
            font-size: 12px;
            background-color: #32c33a;
            border-radius: 50%;
            position: absolute;
            left:-22px;
            top:-22px;
            animation: moveX 4s cubic-bezier(0.36,0,0.64,1) -2s infinite alternate, moveY 4s cubic-bezier(0.36,0,0.64,1) 0s infinite alternate;
        }
    </style></head><body>
    <p id="trajectory">
        <p id="move">Immortal brother</p>
    </p></body></html>

위 코드에서 주의할 점은 다음과 같습니다.

  • 몸 높이를 100%로 설정한 이유 HTML5 환경에서 body의 기본 높이는 0

  • calc로 사용중 값은 동일하다는 점입니다. 값 사이의 "-"와 "+" 양쪽 끝의 공백은 필수입니다.

  • 애니메이션에서 왼쪽과 위쪽의 값은 물체의 움직임의 시작과 끝 위치입니다. 테두리 값에 주의하세요

  • 애니메이션은 한 번만 실행됩니다. 모션 궤적이 절반만 됩니다

  • 속도 곡선: 큐빅-베지어(0.36,0,0.64,1);

  • 양방향 지연 시간 설정 X: -2s Y: 0s

  • 계속해서 앞으로 교대로 실행 방향으로 그리고 반대 방향으로: 번갈아

위 내용은 CSS3 애니메이션에서 원형 운동 궤적 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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