순수 CSS를 사용하여 Baolo Mints에 애니메이션을 적용하는 방법(소스 코드 첨부)

不言
풀어 주다: 2018-10-08 16:41:13
앞으로
1764명이 탐색했습니다.

이 글의 내용은 순수 CSS를 사용하여 Baolu Mint Candy의 애니메이션을 구현하는 방법에 대한 것입니다. (소스 코드 첨부) 도움이 필요한 친구들이 참고할 수 있기를 바랍니다. .

효과 미리보기

순수 CSS를 사용하여 Baolo Mints에 애니메이션을 적용하는 방법(소스 코드 첨부)

소스 코드 다운로드

https://github.com/comehope/front-end-daily-challenges

코드 해석

돔 정의, 1개 요소만 정의:

<div></div>
로그인 후 복사

중앙 디스플레이 :

body {
    margin: 0;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: silver;
}
로그인 후 복사

컨테이너 크기 정의:

.spinner {
    width: 50vmin;
    height: 50vmin;
    position: relative;
}
로그인 후 복사

before 의사 요소를 사용하여 파올로 민트처럼 검은색 고리를 그립니다. before 伪元素画出 1 个像宝路薄荷糖状的黑色圆环:

.spinner::before {
    content: '';
    position: absolute;
    box-sizing: border-box;
    width: inherit;
    height: inherit;
    border: 12.5vmin solid;
    border-radius: 50%;
}
로그인 후 복사

接下来制作动画效果。
设置透视景深:

body {
    perspective: 400px;
}
로그인 후 복사

让圆环在 z 轴上运动:

.spinner::before {
    animation: spin 1.5s ease-in-out infinite both reverse;
}

@keyframes spin {
    0%, 100% {
        transform: translateZ(10vmin);
    }

    60% {
        transform: translateZ(-10vmin);
    }
}
로그인 후 복사

让圆环在 z 轴距离较大时稍稍倾斜:

@keyframes spin {
    0%, 100% {
        transform: translateZ(10vmin) rotateX(25deg);
    }

    60% {
        transform: translateZ(-10vmin);
    }
}
로그인 후 복사

增加缩放效果:

@keyframes spin {
    0%, 100% {
        transform: translateZ(10vmin) rotateX(25deg);
    }

    33% {
        transform: translateZ(-10vmin) scale(0.4);
    }

    60% {
        transform: translateZ(-10vmin);
    }
}
로그인 후 복사

after

.spinner::before,
.spinner::after {
    /*略*/
    animation: spin 1.5s ease-in-out infinite both reverse;
}

.spinner::after {
    border-color: white;
    animation-delay: -0.75s;
}
로그인 후 복사
다음으로 애니메이션 효과를 만듭니다.
원근 심도 설정:

.spinner::before,
.spinner::after {
    /* animation: spin 1.5s ease-in-out infinite both reverse; */
}
로그인 후 복사
링을 z축으로 이동:

.spinner {
    animation: wobble 3s ease-in-out infinite;
}

@keyframes wobble {
    0%, 100% {
        transform: rotateX(15deg);
    }
    
    50% {
        transform: rotateX(60deg);
    }
}
로그인 후 복사
z축 거리가 클 때 링을 약간 기울이기:

@keyframes wobble {
    0%, 100% {
        transform: rotateX(15deg) rotateY(60deg);
    }
    
    50% {
        transform: rotateX(60deg) rotateY(-60deg);
    }
}
로그인 후 복사
확대/축소 효과 추가:

@keyframes wobble {
    0%, 100% {
        transform: rotateX(15deg) rotateY(60deg);
    }
    
    50% {
        transform: rotateX(60deg) rotateY(-60deg) rotate(180deg);
    }
}
로그인 후 복사
after 의사 요소를 사용하면 흰색 링이 그려지고 애니메이션이 전체 애니메이션 길이의 절반만큼 지연됩니다.

.spinner::before,
.spinner::after {
    animation: spin 1.5s ease-in-out infinite both reverse;
}
로그인 후 복사
다음으로 영향을 받지 않도록 컨테이너의 애니메이션 효과를 만듭니다. 하위 요소의 애니메이션, 일시적으로 의사 요소의 애니메이션 효과를 마스킹합니다.

.spinner {
    transform-style: preserve-3d;
}
로그인 후 복사
x축을 따라 컨테이너 회전의 애니메이션 효과를 높입니다. 애니메이션 시간은 하위 요소 애니메이션 시간의 두 배입니다.

rrreee

y축을 따라 컨테이너 회전의 애니메이션 효과를 높입니다.

rrreee

컨테이너 전체 회전의 애니메이션 효과 높이기: 🎜rrreee 🎜하위 요소의 애니메이션 효과를 켜서 하위 요소의 애니메이션 효과와 컨테이너의 애니메이션 효과가 겹쳐지도록: 🎜rrreee🎜마지막으로 다음을 만듭니다. 3D 공간에서 하위 요소 이동: 🎜rrreee🎜끝났습니다! 🎜🎜🎜

위 내용은 순수 CSS를 사용하여 Baolo Mints에 애니메이션을 적용하는 방법(소스 코드 첨부)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿