>웹 프론트엔드 >CSS 튜토리얼 >순수 CSS3 문자 걷기 애니메이션 예제 코드 사용

순수 CSS3 문자 걷기 애니메이션 예제 코드 사용

高洛峰
高洛峰원래의
2017-03-20 15:55:183273검색

오늘 여러분과 공유할 것은 순수 CSS3를 사용하여 구현한 캐릭터 걷기 애니메이션 입니다. JavaScript를 사용하지 않고 CSS3 기술을 사용하여 캐릭터의 걷는 자세를 매우 사실적으로 표현합니다. 실제로 애니메이션 구현의 원리는 비교적 간단합니다. 캐릭터가 여러 그림 속으로 걸어갈 때 상태를 나눈 다음 CSS3의 애니메이션 속성을 사용하여 이 그림들을 직렬로 연결하여 캐릭터 걷기 애니메이션을 구성합니다. 효과.

순수 CSS3 문자 걷기 애니메이션 예제 코드 사용

온라인 데모 소스 코드 다운로드

HTML 코드

<p>
        </p><p>
            </p><p></p>
            <p></p>
            <p></p>
            <p></p>
            <p></p>
            <p></p>
            <p></p>
            <p></p>
        
        <p></p>
        <p>
            </p><p></p>
            <p></p>
            <p></p>
            <p></p>
        
        <!-- skeleton and shadow -->
        <p></p>
        <p>

            </p><p>
                </p><p>
                    </p><p>
                        </p><p>
                            </p><p>
                                </p><p></p>
                            
                        
                    
                
 <!-- left leg -->

                <p>
                    </p><p>
                        </p><p>
                            </p><p>
                                </p><p></p>
                            
                        
                    
                
 <!-- right leg -->

                <p>
                    </p><p>
                        </p><p></p>
                    
                
 <!-- left arm -->

                <p>
                    </p><p>
                        </p><p></p>
                    
                
 <!-- right arm -->

            
 <!-- torso -->
        
 <!-- me -->

        <p></p>
    

기본 CSS 코드

#canvas {
    height: 600px;
    width: 760px;
    margin: 0;
    padding: 0;
    position: relative;
    overflow: hidden;
}

#canvas p {
    position: absolute;
    -webkit-animation-iteration-count: infinite;
    -moz-animation-iteration-count: infinite;
    -ms-animation-iteration-count: infinite;
    -o-animation-iteration-count: infinite;
    animation-iteration-count: infinite;

    -webkit-animation-timing-function: linear;
    -moz-animation-timing-function: linear;
    -ms-animation-timing-function: linear;
    -o-animation-timing-function: linear;
    animation-timing-function: linear;
}

#canvas:target p:not(.overlay) {
    border: 1px solid black;
}

#canvas:target p.me p{
    background: rgba(255, 255, 255, 0.25);
}

.me {
    top: 50px; left: 350px;
    -webkit-animation-name: me;
    -moz-animation-name: me;
    -ms-animation-name: me;
    -o-animation-name: me;
    animation-name: me;
}

.me, .me p {
    background-repeat: no-repeat;
    -webkit-animation-duration: 1750ms;
    -moz-animation-duration: 1750ms;
    -ms-animation-duration: 1750ms;
    -o-animation-duration: 1750ms;
    animation-duration: 1750ms;
}

.torso {
    width: 86px; height: 275px;
    background-image: url(images/me/torso.png);
}

.arm {
    left: 12px;
    -webkit-transform-origin: 20px 10px;
    -moz-transform-origin: 20px 10px;
    -ms-transform-origin: 20px 10px;
    -o-transform-origin: 20px 10px;
    transform-origin: 20px 10px;
}

.right.arm {
    top: 93px;
    -webkit-animation-name: right-bicep;
    -moz-animation-name: right-bicep;
    -ms-animation-name: right-bicep;
    -o-animation-name: right-bicep;
    animation-name: right-bicep;
}
.left.arm {
    top: 87px;
    -webkit-animation-name: left-bicep;
    -moz-animation-name: left-bicep;
    -ms-animation-name: left-bicep;
    -o-animation-name: left-bicep;
    animation-name: left-bicep;
}

.bicep {
    height: 124px; width: 51px;
}

.right.bicep { background-image: url(images/me/right-bicep.png); }
.left.bicep { background-image: url(images/me/left-bicep.png); }

.forearm {
    top: 108px; left: 14px;
    width: 36px; height: 121px;
    -webkit-transform-origin: 3px 7px;
    -moz-transform-origin: 3px 7px;
    -ms-transform-origin: 3px 7px;
    -o-transform-origin: 3px 7px;
    transform-origin: 3px 7px;
}

.right.forearm {
    background-image: url(images/me/right-forearm.png);
    -webkit-animation-name: right-forearm;
    -moz-animation-name: right-forearm;
    -ms-animation-name: right-forearm;
    -o-animation-name: right-forearm;
    animation-name: right-forearm;
}

.left.forearm {
    background-image: url(images/me/left-forearm.png);
    -webkit-animation-name: left-forearm;
    -moz-animation-name: left-forearm;
    -ms-animation-name: left-forearm;
    -o-animation-name: left-forearm;
    animation-name: left-forearm;
}

.leg {
    left: 6px;
    -webkit-transform-origin: 30px 20px;
    -moz-transform-origin: 30px 20px;
    -ms-transform-origin: 30px 20px;
    -o-transform-origin: 30px 20px;
    transform-origin: 30px 20px;
    -webkit-animation-name: thigh;
    -moz-animation-name: thigh;
    -ms-animation-name: thigh;
    -o-animation-name: thigh;
    animation-name: thigh;
}

.right.leg {
    top: 235px;
    -webkit-animation-name: right-thigh;
    -moz-animation-name: right-thigh;
    -ms-animation-name: right-thigh;
    -o-animation-name: right-thigh;
    animation-name: right-thigh;
}

.left.leg {
    top: 225px;
    -webkit-animation-name: left-thigh;
    -moz-animation-name: left-thigh;
    -ms-animation-name: left-thigh;
    -o-animation-name: left-thigh;
    animation-name: left-thigh;
}

.thigh {
    width: 70px; height: 145px;
}

.left.thigh { background-image: url(images/me/left-thigh.png); }
.right.thigh { background-image: url(images/me/right-thigh.png); }

.shin {
    top: 115px;
    width: 50px; height: 170px;
    background-image: url(images/me/shin.png);
    -webkit-transform-origin: 30px 25px;
    -moz-transform-origin: 30px 25px;
    -ms-transform-origin: 30px 25px;
    -o-transform-origin: 30px 25px;
    transform-origin: 30px 25px;
}

.right.shin {
    -webkit-animation-name: right-shin;
    -moz-animation-name: right-shin;
    -ms-animation-name: right-shin;
    -o-animation-name: right-shin;
    animation-name: right-shin;
}
.left.shin {
    -webkit-animation-name: left-shin;
    -moz-animation-name: left-shin;
    -ms-animation-name: left-shin;
    -o-animation-name: left-shin;
    animation-name: left-shin;
}

.foot {
    top: 155px; left: 2px;
    width: 67px; height: 34px;
    background-image: url(images/me/foot.png);
    -webkit-transform-origin: 0 50%;
    -moz-transform-origin: 0 50%;
    -ms-transform-origin: 0 50%;
    -o-transform-origin: 0 50%;
    transform-origin: 0 50%;
}

.right.foot {
    -webkit-animation-name: right-foot;
    -moz-animation-name: right-foot;
    -ms-animation-name: right-foot;
    -o-animation-name: right-foot;
    animation-name: right-foot;
}
.left.foot {
    -webkit-animation-name: left-foot;
    -moz-animation-name: left-foot;
    -ms-animation-name: left-foot;
    -o-animation-name: left-foot;
    animation-name: left-foot;
}

.toes {
    top: 9px; left: 66px;
    width: 28px; height: 25px;
    background-image: url(images/me/toes.png);
    -webkit-transform-origin: 0% 100%;
    -moz-transform-origin: 0% 100%;
    -ms-transform-origin: 0% 100%;
    -o-transform-origin: 0% 100%;
    transform-origin: 0% 100%;
}

.right.toes {
    -webkit-animation-name: right-toes;
    -moz-animation-name: right-toes;
    -ms-animation-name: right-toes;
    -o-animation-name: right-toes;
    animation-name: right-toes;
}
.left.toes {
    -webkit-animation-name: left-toes;
    -moz-animation-name: left-toes;
    -ms-animation-name: left-toes;
    -o-animation-name: left-toes;
    animation-name: left-toes;
}

.shadow {
    width: 200px; height: 70px;
    left: 270px; bottom: 5px;
    background-image: url(images/misc/shadow.png);
    -webkit-animation-name: shadow;
    -moz-animation-name: shadow;
    -ms-animation-name: shadow;
    -o-animation-name: shadow;
    animation-name: shadow;
}

/* setting proper z-indexes so that limbs show up correctly */

p.right.arm { z-index: 1; }
p.left.arm { z-index: -3; }
p.arm > p.bicep > p.forearm { z-index: -1; }

p.right.leg { z-index: -1; }
p.left.leg { z-index: -2; }
p.leg > p.thigh > p.shin { z-index: -1; }

.overlay {
    width: 100%; height: 100%;
    background: url(images/misc/gradient-left.png) repeat-y top left,
                url(images/misc/gradient-right.png) repeat-y top right;
}

.sky p {
    background-repeat: no-repeat;
    -webkit-animation-name: prop-1200;
    -moz-animation-name: prop-1200;
    -ms-animation-name: prop-1200;
    -o-animation-name: prop-1200;
    animation-name: prop-1200;
}

.cloud-1, .cloud-2 {
    width: 82px; height: 90px;
    background-image: url(images/clouds/1.png);
    -webkit-animation-duration: 120s;
    -moz-animation-duration: 120s;
    -ms-animation-duration: 120s;
    -o-animation-duration: 120s;
    animation-duration: 120s;
}

.cloud-3, .cloud-4 {
    top: 70px;
    width: 159px; height: 90px;
    background-image: url(images/clouds/2.png);
    -webkit-animation-duration: 80s;
    -moz-animation-duration: 80s;
    -ms-animation-duration: 80s;
    -o-animation-duration: 80s;
    animation-duration: 80s;
}

.cloud-5, .cloud-6 {
    top: 30px;
    width: 287px; height: 62px;
    background-image: url(images/clouds/3.png);
    -webkit-animation-duration: 140s;
    -moz-animation-duration: 140s;
    -ms-animation-duration: 140s;
    -o-animation-duration: 140s;
    animation-duration: 140s;
}

.cloud-7, .cloud-8 {
    top: 100px;
    width: 94px; height: 81px;
    background-image: url(images/clouds/4.png);
    -webkit-animation-duration: 90s;
    -moz-animation-duration: 90s;
    -ms-animation-duration: 90s;
    -o-animation-duration: 90s;
    animation-duration: 90s;
}

.cloud-1 { left: 0px; }
.cloud-2 { left: 1200px; }

.cloud-3 { left: 250px; }
.cloud-4 { left: 1450px; }

.cloud-5 { left: 500px; }
.cloud-6 { left: 1700px; }

.cloud-7 { left: 950px; }
.cloud-8 { left: 2150px; }

.horizon {
    top: 350px;
    width: 1800px; height: 50px;
    background: url(images/misc/horizon.png) repeat-x;
    -webkit-animation-name: prop-600;
    -moz-animation-name: prop-600;
    -ms-animation-name: prop-600;
    -o-animation-name: prop-600;
    animation-name: prop-600;
    -webkit-animation-duration: 40s;
    -moz-animation-duration: 40s;
    -ms-animation-duration: 40s;
    -o-animation-duration: 40s;
    animation-duration: 40s;
}

.ground p {
    background-repeat: no-repeat;
    -webkit-animation-name: prop-2000;
    -moz-animation-name: prop-2000;
    -ms-animation-name: prop-2000;
    -o-animation-name: prop-2000;
    animation-name: prop-2000;
}

.sign-all-css {
    width: 160px; height: 188px;
    top: 325px; left: 1600px;
    background-image: url(images/signs/all-css.png);
    -webkit-animation-duration: 35s;
    -moz-animation-duration: 35s;
    -ms-animation-duration: 35s;
    -o-animation-duration: 35s;
    animation-duration: 35s;
}

.sign-lots-of-ps {
    width: 102px; height: 120px;
    top: 345px; left: 1150px;
    background-image: url(images/signs/lots-of-ps.png);
    -webkit-animation-duration: 56s;
    -moz-animation-duration: 56s;
    -ms-animation-duration: 56s;
    -o-animation-duration: 56s;
    animation-duration: 56s;
}

.sign-no-js {
    width: 65px; height: 77px;
    top: 348px; left: 1150px;
    background-image: url(images/signs/no-js.png);
    -webkit-animation-duration: 71s;
    -moz-animation-duration: 71s;
    -ms-animation-duration: 71s;
    -o-animation-duration: 71s;
    animation-duration: 71s;
}

.sign-best {
    width: 43px; height: 50px;
    top: 350px; left: 1000px;
    background-image: url(images/signs/best.png);
    -webkit-animation-duration: 95s;
    -moz-animation-duration: 95s;
    -ms-animation-duration: 95s;
    -o-animation-duration: 95s;
    animation-duration: 95s;
}

CSS 애니메이션 관련 코드

아아아아

위 내용은 순수 CSS3 문자 걷기 애니메이션 예제 코드 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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