非常震撼的纯CSS3人物行走动画

时间:2021-05-08

本文分享给大家的是一个用纯CSS3实现的人物行走动画,在没有使用JavaScript的情况下,用CSS3技术将人物行走的姿态描绘得非常逼真。其实动画实现的原理也是比较简单的,将人物行走时的状态分割成多张图片,然后利用CSS3的动画属性将这些图片串联起来形成人物行走动画效果。

HTML代码

XML/HTML Code复制内容到剪贴板
  • <divid="canvas">
  • <divclass="sky">
  • <divclass="cloud-1"></div>
  • <divclass="cloud-2"></div>
  • <divclass="cloud-3"></div>
  • <divclass="cloud-4"></div>
  • <divclass="cloud-5"></div>
  • <divclass="cloud-6"></div>
  • <divclass="cloud-7"></div>
  • <divclass="cloud-8"></div>
  • </div>
  • <divclass="horizon"></div>
  • <divclass="ground">
  • <divclass="sign-best"></div>
  • <divclass="sign-no-js"></div>
  • <divclass="sign-lots-of-divs"></div>
  • <divclass="sign-all-css"></div>
  • </div>
  • <!--skeletonandshadow-->
  • <divclass="shadow"></div>
  • <divclass="me">
  • <divclass="torso">
  • <divclass="leftleg">
  • <divclass="leftthigh">
  • <divclass="leftshin">
  • <divclass="leftfoot">
  • <divclass="lefttoes"></div>
  • </div>
  • </div>
  • </div>
  • </div>
  • <!--leftleg-->
  • <divclass="rightleg">
  • <divclass="rightthigh">
  • <divclass="rightshin">
  • <divclass="rightfoot">
  • <divclass="righttoes"></div>
  • </div>
  • </div>
  • </div>
  • </div>
  • <!--rightleg-->
  • <divclass="leftarm">
  • <divclass="leftbicep">
  • <divclass="leftforearm"></div>
  • </div>
  • </div>
  • <!--leftarm-->
  • <divclass="rightarm">
  • <divclass="rightbicep">
  • <divclass="rightforearm"></div>
  • </div>
  • </div>
  • <!--rightarm-->
  • </div>
  • <!--torso-->
  • </div>
  • <!--me-->
  • <divclass="overlay"></div>
  • </div>
  • 基本CSS代码

    CSS Code复制内容到剪贴板
  • #canvas{
  • height:600px;
  • width:760px;
  • margin:0;
  • padding:0;
  • position:relative;
  • overflow:hidden;
  • }
  • #canvasdiv{
  • 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:targetdiv:not(.overlay){
  • border:1pxsolidblack;
  • }
  • #canvas:targetdiv.mediv{
  • 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,.mediv{
  • 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:20px10px;
  • -moz-transform-origin:20px10px;
  • -ms-transform-origin:20px10px;
  • -o-transform-origin:20px10px;
  • transform-origin:20px10px;
  • }
  • .rightright.arm{
  • top:93px;
  • -webkit-animation-name:rightright-bicep;
  • -moz-animation-name:rightright-bicep;
  • -ms-animation-name:rightright-bicep;
  • -o-animation-name:rightright-bicep;
  • animation-name:rightright-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;
  • }
  • .rightright.bicep{background-image:url(images/me/rightright-bicep.png);}
  • .left.bicep{background-image:url(images/me/left-bicep.png);}
  • .forearm{
  • top:108px;left:14px;
  • width:36px;height:121px;
  • -webkit-transform-origin:3px7px;
  • -moz-transform-origin:3px7px;
  • -ms-transform-origin:3px7px;
  • -o-transform-origin:3px7px;
  • transform-origin:3px7px;
  • }
  • .rightright.forearm{
  • background-image:url(images/me/rightright-forearm.png);
  • -webkit-animation-name:rightright-forearm;
  • -moz-animation-name:rightright-forearm;
  • -ms-animation-name:rightright-forearm;
  • -o-animation-name:rightright-forearm;
  • animation-name:rightright-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:30px20px;
  • -moz-transform-origin:30px20px;
  • -ms-transform-origin:30px20px;
  • -o-transform-origin:30px20px;
  • transform-origin:30px20px;
  • -webkit-animation-name:thigh;
  • -moz-animation-name:thigh;
  • -ms-animation-name:thigh;
  • -o-animation-name:thigh;
  • animation-name:thigh;
  • }
  • .rightright.leg{
  • top:235px;
  • -webkit-animation-name:rightright-thigh;
  • -moz-animation-name:rightright-thigh;
  • -ms-animation-name:rightright-thigh;
  • -o-animation-name:rightright-thigh;
  • animation-name:rightright-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);}
  • .rightright.thigh{background-image:url(images/me/rightright-thigh.png);}
  • .shin{
  • top:115px;
  • width:50px;height:170px;
  • background-image:url(images/me/shin.png);
  • -webkit-transform-origin:30px25px;
  • -moz-transform-origin:30px25px;
  • -ms-transform-origin:30px25px;
  • -o-transform-origin:30px25px;
  • transform-origin:30px25px;
  • }
  • .rightright.shin{
  • -webkit-animation-name:rightright-shin;
  • -moz-animation-name:rightright-shin;
  • -ms-animation-name:rightright-shin;
  • -o-animation-name:rightright-shin;
  • animation-name:rightright-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:050%;
  • -moz-transform-origin:050%;
  • -ms-transform-origin:050%;
  • -o-transform-origin:050%;
  • transform-origin:050%;
  • }
  • .rightright.foot{
  • -webkit-animation-name:rightright-foot;
  • -moz-animation-name:rightright-foot;
  • -ms-animation-name:rightright-foot;
  • -o-animation-name:rightright-foot;
  • animation-name:rightright-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%;
  • }
  • .rightright.toes{
  • -webkit-animation-name:rightright-toes;
  • -moz-animation-name:rightright-toes;
  • -ms-animation-name:rightright-toes;
  • -o-animation-name:rightright-toes;
  • animation-name:rightright-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;bottombottom: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;
  • }
  • div.rightright.arm{z-index:1;}
  • div.left.arm{z-index:-3;}
  • div.arm>div.bicep>div.forearm{z-index:-1;}
  • div.rightright.leg{z-index:-1;}
  • div.left.leg{z-index:-2;}
  • div.leg>div.thigh>div.shin{z-index:-1;}
  • .overlay{
  • width:100%;height:100%;
  • background:url(images/misc/gradient-left.png)repeat-ytopleft,
  • url(images/misc/gradient-rightright.png)repeat-ytoprightright;
  • }
  • .skydiv{
  • 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;
  • }
  • .grounddiv{
  • 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-divs{
  • width:102px;height:120px;
  • top:345px;left:1150px;
  • background-image:url(images/signs/lots-of-divs.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动画相关代码

    CSS Code复制内容到剪贴板
  • @-webkit-keyframesme{
  • 0%{-webkit-transform:rotate(5deg)translate(5px,0px);}
  • 25%{-webkit-transform:rotate(5deg)translate(-5px,-14px);}
  • 50%{-webkit-transform:rotate(5deg)translate(5px,0px);}
  • 75%{-webkit-transform:rotate(5deg)translate(-5px,-14px);}
  • 100%{-webkit-transform:rotate(5deg)translate(5px,0px);}
  • }
  • @-webkit-keyframesrightright-bicep{
  • 0%{-webkit-transform:rotate(26deg);}
  • 50%{-webkit-transform:rotate(-20deg);}
  • 100%{-webkit-transform:rotate(26deg);}
  • }
  • @-webkit-keyframesleft-bicep{
  • 0%{-webkit-transform:rotate(-20deg);}
  • 50%{-webkit-transform:rotate(26deg);}
  • 100%{-webkit-transform:rotate(-20deg);}
  • }
  • @-webkit-keyframesrightright-forearm{
  • 0%{-webkit-transform:rotate(-10deg);}
  • 50%{-webkit-transform:rotate(-45deg);}
  • 100%{-webkit-transform:rotate(-10deg);}
  • }
  • @-webkit-keyframesleft-forearm{
  • 0%{-webkit-transform:rotate(-45deg);}
  • 50%{-webkit-transform:rotate(-10deg);}
  • 100%{-webkit-transform:rotate(-45deg);}
  • }
  • @-webkit-keyframesrightright-thigh{
  • 0%{-webkit-transform:rotate(-45deg);}
  • 50%{-webkit-transform:rotate(10deg);}
  • 100%{-webkit-transform:rotate(-45deg);}
  • }
  • @-webkit-keyframesleft-thigh{
  • 0%{-webkit-transform:rotate(10deg);}
  • 50%{-webkit-transform:rotate(-45deg);}
  • 100%{-webkit-transform:rotate(10deg);}
  • }
  • @-webkit-keyframesrightright-shin{
  • 0%{-webkit-transform:rotate(30deg);}
  • 25%{-webkit-transform:rotate(20deg);}
  • 50%{-webkit-transform:rotate(20deg);}
  • 75%{-webkit-transform:rotate(85deg);}
  • 100%{-webkit-transform:rotate(30deg);}
  • }
  • @-webkit-keyframesleft-shin{
  • 0%{-webkit-transform:rotate(20deg);}
  • 25%{-webkit-transform:rotate(85deg);}
  • 50%{-webkit-transform:rotate(30deg);}
  • 75%{-webkit-transform:rotate(20deg);}
  • 100%{-webkit-transform:rotate(20deg);}
  • }
  • @-webkit-keyframesrightright-foot{
  • 0%{-webkit-transform:rotate(-5deg);}
  • 25%{-webkit-transform:rotate(-7deg);}
  • 50%{-webkit-transform:rotate(-16deg);}
  • 75%{-webkit-transform:rotate(-10deg);}
  • 100%{-webkit-transform:rotate(-5deg);}
  • }
  • @-webkit-keyframesleft-foot{
  • 0%{-webkit-transform:rotate(-16deg);}
  • 25%{-webkit-transform:rotate(-10deg);}
  • 50%{-webkit-transform:rotate(-5deg);}
  • 75%{-webkit-transform:rotate(-7deg);}
  • 100%{-webkit-transform:rotate(-16deg);}
  • }
  • @-webkit-keyframesrightright-toes{
  • 0%{-webkit-transform:rotate(0deg);}
  • 25%{-webkit-transform:rotate(-10deg);}
  • 50%{-webkit-transform:rotate(-10deg);}
  • 75%{-webkit-transform:rotate(-25deg);}
  • 100%{-webkit-transform:rotate(0deg);}
  • }
  • @-webkit-keyframesleft-toes{
  • 0%{-webkit-transform:rotate(-10deg);}
  • 25%{-webkit-transform:rotate(-25deg);}
  • 50%{-webkit-transform:rotate(0deg);}
  • 75%{-webkit-transform:rotate(-10deg);}
  • 100%{-webkit-transform:rotate(-10deg);}
  • }
  • @-webkit-keyframesshadow{
  • 0%{opacity:1;}
  • 25%{opacity:0.75;}
  • 50%{opacity:1;}
  • 75%{opacity:0.75;}
  • 100%{opacity:1;}
  • }
  • @-webkit-keyframesprop-600{
  • 0%{-webkit-transform:translateX(0px);}
  • 100%{-webkit-transform:translateX(-600px);}
  • }
  • @-webkit-keyframesprop-1200{
  • 0%{-webkit-transform:translateX(0px);}
  • 100%{-webkit-transform:translateX(-1200px);}
  • }
  • @-webkit-keyframesprop-2000{
  • 0%{-webkit-transform:translateX(0px);}
  • 100%{-webkit-transform:translateX(-2000px);}
  • }
  • 以上就是本文的全部内容,希望对大家的学习有所帮助。

    声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

    相关文章