本文分享给大家的是一个用纯CSS3实现的人物行走动画,在没有使用JavaScript的情况下,用CSS3技术将人物行走的姿态描绘得非常逼真。其实动画实现的原理也是比较简单的,将人物行走时的状态分割成多张图片,然后利用CSS3的动画属性将这些图片串联起来形成人物行走动画效果。
HTML代码
XML/HTML Code复制内容到剪贴板- <div id="canvas">
- <div class="sky">
- <div class="cloud-1"></div>
- <div class="cloud-2"></div>
- <div class="cloud-3"></div>
- <div class="cloud-4"></div>
- <div class="cloud-5"></div>
- <div class="cloud-6"></div>
- <div class="cloud-7"></div>
- <div class="cloud-8"></div>
- </div>
- <div class="horizon"></div>
- <div class="ground">
- <div class="sign-best"></div>
- <div class="sign-no-js"></div>
- <div class="sign-lots-of-divs"></div>
- <div class="sign-all-css"></div>
- </div>
- <!-- skeleton and shadow -->
- <div class="shadow"></div>
- <div class="me">
- <div class="torso">
- <div class="left leg">
- <div class="left thigh">
- <div class="left shin">
- <div class="left foot">
- <div class="left toes"></div>
- </div>
- </div>
- </div>
- </div>
- <!-- left leg -->
- <div class="right leg">
- <div class="right thigh">
- <div class="right shin">
- <div class="right foot">
- <div class="right toes"></div>
- </div>
- </div>
- </div>
- </div>
- <!-- right leg -->
- <div class="left arm">
- <div class="left bicep">
- <div class="left forearm"></div>
- </div>
- </div>
- <!-- left arm -->
- <div class="right arm">
- <div class="right bicep">
- <div class="right forearm"></div>
- </div>
- </div>
- <!-- right arm -->
- </div>
- <!-- torso -->
- </div>
- <!-- me -->
- <div class="overlay"></div>
- </div>
基本CSS代码
CSS Code复制内容到剪贴板- #canvas {
- height: 600px;
- width: 760px;
- margin: 0;
- padding: 0;
- position: relative;
- overflow: hidden;
- }
- #canvas div {
- 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 div:not(.overlay) {
- border: 1px solid black;
- }
- #canvas:target div.me div{
- 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 div {
- 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;
- }
- .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: 3px 7px;
- -moz-transform-origin: 3px 7px;
- -ms-transform-origin: 3px 7px;
- -o-transform-origin: 3px 7px;
- transform-origin: 3px 7px;
- }
- .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: 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;
- }
- .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: 30px 25px;
- -moz-transform-origin: 30px 25px;
- -ms-transform-origin: 30px 25px;
- -o-transform-origin: 30px 25px;
- transform-origin: 30px 25px;
- }
- .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: 0 50%;
- -moz-transform-origin: 0 50%;
- -ms-transform-origin: 0 50%;
- -o-transform-origin: 0 50%;
- transform-origin: 0 50%;
- }
- .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;
- }
- /* setting proper z-indexes so that limbs show up correctly */
- 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-y top left,
- url(images/misc/gradient-rightright.png) repeat-y top rightright;
- }
- .sky div {
- 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 div {
- 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-keyframes me {
- 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-keyframes rightright-bicep {
- 0% { -webkit-transform: rotate(26deg); }
- 50% { -webkit-transform: rotate(-20deg); }
- 100% { -webkit-transform: rotate(26deg); }
- }
- @-webkit-keyframes left-bicep {
- 0% { -webkit-transform: rotate(-20deg); }
- 50% { -webkit-transform: rotate(26deg); }
- 100% { -webkit-transform: rotate(-20deg); }
- }
- @-webkit-keyframes rightright-forearm {
- 0% { -webkit-transform: rotate(-10deg); }
- 50% { -webkit-transform: rotate(-45deg); }
- 100% { -webkit-transform: rotate(-10deg); }
- }
- @-webkit-keyframes left-forearm {
- 0% { -webkit-transform: rotate(-45deg); }
- 50% { -webkit-transform: rotate(-10deg); }
- 100% { -webkit-transform: rotate(-45deg); }
- }
- @-webkit-keyframes rightright-thigh {
- 0% { -webkit-transform: rotate(-45deg); }
- 50% { -webkit-transform: rotate(10deg); }
- 100% { -webkit-transform: rotate(-45deg); }
- }
- @-webkit-keyframes left-thigh {
- 0% { -webkit-transform: rotate(10deg); }
- 50% { -webkit-transform: rotate(-45deg); }
- 100% { -webkit-transform: rotate(10deg); }
- }
- @-webkit-keyframes rightright-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-keyframes left-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-keyframes rightright-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-keyframes left-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-keyframes rightright-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-keyframes left-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-keyframes shadow {
- 0% { opacity: 1; }
- 25% { opacity: 0.75; }
- 50% { opacity: 1; }
- 75% { opacity: 0.75; }
- 100% { opacity: 1; }
- }
- @-webkit-keyframes prop-600 {
- 0% { -webkit-transform: translateX(0px); }
- 100% { -webkit-transform: translateX(-600px); }
- }
- @-webkit-keyframes prop-1200 {
- 0% { -webkit-transform: translateX(0px); }
- 100% { -webkit-transform: translateX(-1200px); }
- }
- @-webkit-keyframes prop-2000 {
- 0% { -webkit-transform: translateX(0px); }
- 100% { -webkit-transform: translateX(-2000px); }
- }
以上就是本文的全部内容,希望对大家的学习有所帮助。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
2024年11月24日
2024年11月24日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]