애니메이션 효과를 얻기위한 CSS3

오늘 저는 css3를 사용하여 요소가 좌우로 흔들리는 효과를 얻고 싶습니다. 먼저 css3의 애니메이션 속성에 대한 설명을 살펴 보겠습니다.

  • CSS3 @keyframes 규칙
    CSS3에서 애니메이션을 만들려면 @keyframes 규칙 을 배워야합니다.
    @keyframes 규칙은 애니메이션을 만드는 데 사용됩니다. @keyframes에 특정 CSS 스타일을 지정하면 현재 스타일에서 새 스타일로 점진적으로 변경되는 애니메이션 효과를 만들 수 있습니다.
    Internet Explorer 10, Firefox 및 Opera는 @keyframes 규칙 및 애니메이션 속성을 지원합니다.
    Chrome 및 Safari에는 접두사 -webkit- @ keyframes가 필요합니다.
	@keyframes myfirst
	{
		from {background: red;}
		to {background: yellow;}
	}
	@-webkit-keyframes myfirst /* Safari 和 Chrome */
	{
		from {background: red;}
		to {background: yellow;}
	}

애니메이션은 요소를 한 스타일에서 다른 스타일로 점진적으로 변경하는 효과입니다.
여러 스타일을 여러 번 변경할 수 있습니다.
백분율을 사용하여 변경 발생 시간을 지정하거나 0 % 및 100 %에 해당하는 "시작"및 "종료"키워드를 사용하십시오.
0 %는 애니메이션의 시작이고 100 %는 애니메이션의 완료입니다.
최상의 브라우저 지원을 얻으려면 항상 0 % 및 100 % 선택자를 정의해야합니다.
예제
애니메이션이 25 % 및 50 % 일 때 배경색을 변경하고 애니메이션이 100 % 완료되면 다시 변경합니다.

@keyframes myfirst
{
0%   {background: red;}
25%  {background: yellow;}
50%  {background: blue;}
100% {background: green;}
}
@-webkit-keyframes myfirst /* Safari 和 Chrome */
{
0%   {background: red;}
25%  {background: yellow;}
50%  {background: blue;}
100% {background: green;}
}![在这里插入图片描述](https://img-blog.csdnimg.cn/20190809105211511.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE5MzAwNTQ=,size_16,color_FFFFFF,t_70)
  • CSS3 애니메이션 속성
    애니메이션 속성예제

모든 애니메이션 속성을 설정하여 myfirst라는 애니메이션을 실행합니다.

div
{
animation-name: myfirst;
animation-duration: 5s;
animation-timing-function: linear;
animation-delay: 2s;
animation-iteration-count: infinite;
animation-direction: alternate;
animation-play-state: running;
/* Safari 和 Chrome: */
-webkit-animation-name: myfirst;
-webkit-animation-duration: 5s;
-webkit-animation-timing-function: linear;
-webkit-animation-delay: 2s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-direction: alternate;
-webkit-animation-play-state: running;
}

위의 내용은 애니메이션의 표준 속성에 따라 구성되며 축약 된 형식으로도 작성할 수 있습니다.

예제
는 위의 애니메이션과 동일하지만 축약 형 애니메이션 속성을 사용합니다.

div
{
animation: myfirst 5s linear 2s infinite alternate;
/* Firefox: */
-moz-animation: myfirst 5s linear 2s infinite alternate;
/* Safari 和 Chrome: */
-webkit-animation: myfirst 5s linear 2s infinite alternate;
}

아래의 주요 주제를 살펴 보겠습니다. 요소를 좌우로 흔들리는 방법에 대해 이야기 합니다.
먼저 @keyframes 및 요소의 애니메이션 속성을 설정합니다.

<style>
        .weui-badge{
            display:inline-block;
            padding:.15em .4em;
            min-width:8px;
            border-radius:18px;
            background-color:#F43530;
            color:#FFFFFF;
            line-height:1.2;
            text-align:center;
            font-size:12px;
            vertical-align:middle;
            animation:move 3s 0s infinite;-webkit-animation:move 3s 0s infinite;
            transform-origin:bottom;-webkit-transform-origin:bottom;
        }
        @keyframes move
        {
            0%, 65%{
                -webkit-transform:rotate(0deg);
                transform:rotate(0deg);
            }
            70% {
                -webkit-transform:rotate(6deg);
                transform:rotate(6deg);
            }
            75% {
                -webkit-transform:rotate(-6deg);
                transform:rotate(-6deg);
            }
            80% {
                -webkit-transform:rotate(6deg);
                transform:rotate(6deg);
            }
            85% {
                -webkit-transform:rotate(-6deg);
                transform:rotate(-6deg);
            }
            90% {
                -webkit-transform:rotate(6deg);
                transform:rotate(6deg);
            }
            95% {
                -webkit-transform:rotate(-6deg);
                transform:rotate(-6deg);
            }
            100% {
                -webkit-transform:rotate(0deg);
                transform:rotate(0deg);
            }
        }

        @-webkit-keyframes move
        {
            0%, 65%{
                -webkit-transform:rotate(0deg);
                transform:rotate(0deg);
            }
            70% {
                -webkit-transform:rotate(6deg);
                transform:rotate(6deg);
            }
            75% {
                -webkit-transform:rotate(-6deg);
                transform:rotate(-6deg);
            }
            80% {
                -webkit-transform:rotate(6deg);
                transform:rotate(6deg);
            }
            85% {
                -webkit-transform:rotate(-6deg);
                transform:rotate(-6deg);
            }
            90% {
                -webkit-transform:rotate(6deg);
                transform:rotate(6deg);
            }
            95% {
                -webkit-transform:rotate(-6deg);
                transform:rotate(-6deg);
            }
            100% {
                -webkit-transform:rotate(0deg);
                transform:rotate(0deg);
            }
        }
    </style>

코드 분석을 볼 수 있습니다. @keyframes 규칙을 설정하면 요소가 0 % -65 %에서 동작하지 않습니다. 즉, 70 % -100 %에서 시작
하여 6도 에서 스윙하는 회전 각도가 없습니다. 위이 배지와 같은 애니메이션을 설정합니다 . 다음과 같이 스타일 :

animation:move 3s 0s infinite;-webkit-animation:move 3s 0s infinite;
transform-origin:bottom;
-webkit-transform-origin:bottom;

즉, @keyframes 규칙을 사용하여주기 동작을 완료하도록 애니메이션을 3 초로 설정하고 애니메이션이 0 초에서 시작하도록 설정하고 애니메이션이 무한 (무한) 재생되도록 지정합니다.
transform-origin : bottom을 설정하여 요소 회전 기준점을 하단 중심점으로 설정합니다. 기본값은 요소의 중심점입니다.

추천

출처blog.csdn.net/u011930054/article/details/98944023