每次看到CSS3动画就心痒痒想试一下,记得一个多月前看了白树哥哥的一篇博客,突然开窍,于是拿他提供的demo试了一下,感觉很棒!下图为demo提供的动画帧设计稿。
自己也想说搞一个DIY的动画出来,可是,会PS不一定会设计啊,我搞不出一套动画设计稿出来啊【抓狂】….于是乎,去了站酷网找找素材,我果然还是太天真了,最后从心只找到了一张图:
联想到我要做CSS3动画,呵呵……怎么办 ? ——没办法,抠呗!(此处勿喷,着实无素材)
……最后效果变成这样子,这是移动端的例子!(gif图有卡顿现象,请凑合看吧,非喜勿喷…):
OK,其实主要目的还是知识点的学习吧:
这个demo涉及的知识点有:
perspective
perspective-origin
transform-style
transform-origin
animation
@keyframes
translate3d,translateX,rotateY….
这些知识点有些涉及css3d动画,各个知识点的具体详解我就不解释了,有兴趣可以到这里了解一下:http://isux.tencent.com/css3/index.html
回到这个案例,话说这么挫的动画是怎么具体实现的呢? 我将分享代码给大家练习:
html结构:
XML/HTML Code复制内容到剪贴板- <body>
- <div class="title">
- <p>小黄人</p>
- </div>
- <div class="wrapper">
- <div class="littleH">
- <div class="light">
- <div class="light_left">
- <p>欢迎欢迎,热烈欢迎</p>
- </div>
- <div class="light_right">
- <p>欢迎欢迎,热烈欢迎</p>
- </div>
- <div class="load"></div>
- </div>
- <div class="littleH_body">
- <div class="leftHair"></div>
- <div class="rightHair"></div>
- <div class="leftBlackeye"></div>
- <div class="leftWhiteeye"></div>
- <div class="rightBlackeye"></div>
- <div class="rightWhiteeye"></div>
- <div class="mouse"></div>
- <div class="leftFoot"></div>
- <div class="rightFoot"></div>
- </div>
- </div>
- </div>
- </body>
css代码:
CSS Code复制内容到剪贴板- body{
- margin: 0;
- padding: 0;
- width: 100%;
- height: 100%;
- }
- .title p{
- text-align: center;
- font-size: 100px;
- font-weight: bolder;
- color:#333;
- }
- .wrapper{
- margin: 400px auto;
- }
- .littleH{
- position: relative;
- -webkit-perspective: 800;
- -webkit-perspective-origin: 50% 50%;
- }
- .light{
- -webkit-transform-style: preserve-3d;
- }
- .light .light_left,.light .light_right{
- position: absolute;
- width: 100%;
- height: 300px;
- background: lightblue;
- -webkit-transform: rotateY(90deg) translate3d(0,300px,-200px);
- -webkit-animation: changeBgColor 2s linear infinite;
- }
- .light .light_right{
- -webkit-transform: rotateY(-90deg) translate3d(0,300px,-215px);
- -webkit-animation-delay: 1s;
- }
- @-webkit-keyframes changeBgColor{
- 0%,100%{
- background: lightblue;
- }
- 50%{
- background: lightgreen;
- }
- }
- .light .light_left p,.light .light_right p{
- color:#fff;
- font-size: 80px;
- font-weight: bold;
- margin-left: 100px;
- }
- .light .light_right p{
- float: rightright;
- margin-right: 100px;
- }
- .light .load{
- position: absolute;
- width: 500px;
- height: 1500px;
- background: -webkit-gradient(linear, left top, left bottombottom, color-stop(51%,#aadbdc), color-stop(52%,#ffffff));
- background: -webkit-linear-gradient(top, #aadbdc 51%,#ffffff 52%);
- background: linear-gradient(to bottombottom, #aadbdc 51%,#ffffff 52%);
- background-size: 350px 80px;
- -webkit-animation: move_load 5s linear infinite;
- }
- @-webkit-keyframes move_load{
- 0%{
- -webkit-transform:rotateX(90deg) translate3d(250px,0,0);
- }
- 100%{
- -webkit-transform:rotateX(90deg) translate3d(250px,-320px,0);
- }
- }
- .littleH_body{
- position: absolute;
- left:50%;
- margin-left: -157px;
- width: 314px;
- height: 425px;
- background: url(1.png);
- -webkit-transform-style: preserve-3d;
- }
- .leftHair{
- position: absolute;
- rightright: 58px;
- top:-5px;
- width: 100px;
- height: 17px;
- background: url(lefthair.png);
- -webkit-transform-origin: left bottombottom;
- -webkit-animation: lefthair 1s .3s ease-in-out infinite;
- }
- @-webkit-keyframes lefthair{
- 0%,10%,40%,100%{
- -webkit-transform: rotate(0deg) translateY(1px);
- }
- 30%{
- -webkit-transform: rotate(-3deg) translateY(1px);
- }
- }
- .rightHair{
- position: absolute;
- left: 58px;
- top:-8px;
- width: 100px;
- height: 16px;
- background: url(righthair.png);
- -webkit-transform-origin: rightright bottombottom;
- -webkit-animation: righthair 1s ease-in-out infinite;
- }
- @-webkit-keyframes righthair{
- 0%,10%,40%,100%{
- -webkit-transform: rotate(0deg) translateY(1px);
- }
- 30%{
- -webkit-transform: rotate(4deg) translateY(1px);
- }
- }
- .leftBlackeye{
- position: absolute;
- rightright: 87px;
- top:102px;
- width: 43px;
- height: 43px;
- background: url(eyeblack.png);
- -webkit-animation: leftblackeye 5s ease-in infinite;
- }
- @-webkit-keyframes leftblackeye{
- 0%,20%,50%,70%,100%{
- -webkit-transform: translateX(0px);
- }
- 30%,40%{
- -webkit-transform: translateX(15px);
- }
- 80%,90%{
- -webkit-transform: translateX(-15px);
- }
- }
- .leftWhiteeye{
- position: absolute;
- rightright: 92px;
- top:110px;
- width: 20px;
- height: 21px;
- background: url(whiteeye.png);
- background-size: 95% 95%;
- background-repeat: no-repeat;
- -webkit-animation: leftwhiteeye 5s ease-in infinite;
- }
- @-webkit-keyframes leftwhiteeye{
- 0%,20%,50%,70%,100%{
- -webkit-transform: translateX(0px);
- }
- 30%,40%{
- -webkit-transform: translate3d(15px,3px,0);
- }
- 80%,90%{
- -webkit-transform: translate3d(-30px,3px,0);
- }
- }
- .rightBlackeye{
- position: absolute;
- left: 84px;
- top:102px;
- width: 43px;
- height: 43px;
- background: url(eyeblack.png);
- -webkit-animation: rightblackeye 5s ease-in infinite;
- }
- @-webkit-keyframes rightblackeye{
- 0%,20%,50%,70%,100%{
- -webkit-transform: translateX(0px);
- }
- 30%,40%{
- -webkit-transform: translateX(15px);
- }
- 80%,90%{
- -webkit-transform: translateX(-15px);
- }
- }
- .rightWhiteeye{
- position: absolute;
- left: 102px;
- top:112px;
- width: 20px;
- height: 21px;
- background: url(whiteeye.png);
- background-size: 95% 95%;
- background-repeat: no-repeat;
- -webkit-animation: rightwhiteeye 5s ease-in infinite;
- }
- @-webkit-keyframes rightwhiteeye{
- 0%,20%,50%,70%,100%{
- -webkit-transform: translateX(0px);
- }
- 30%,40%{
- -webkit-transform: translate3d(15px,3px,0);
- }
- 80%,90%{
- -webkit-transform: translate3d(-30px,3px,0);
- }
- }
- .mouse{
- position: absolute;
- left: 126px;
- top:210px;
- width: 71px;
- height: 30px;
- background: url(mouse.png);
- -webkit-transform-origin: center top;
- -webkit-animation: mouse 5s ease-in-out infinite;
- }
- @-webkit-keyframes mouse{
- 40%{
- -webkit-transform: rotate(-15deg) translateX(22px);
- }
- 0%,20%,60%,100%{
- -webkit-transform: rotate(0deg);
- }
- }
- .leftFoot{
- position: absolute;
- rightright: 85px;
- top:424px;
- width: 68px;
- height: 43px;
- background: url(leftfoot.png);
- -webkit-transform-origin: left top;
- -webkit-animation: leftfoot .6s ease-in-out infinite;
- }
- @-webkit-keyframes leftfoot{
- 0%,50%,100%{
- -webkit-transform: rotate(0deg);
- }
- 80%{
- -webkit-transform: rotate(-10deg);
- }
- }
- .rightFoot{
- position: absolute;
- left: 85px;
- top:424px;
- width: 68px;
- height: 43px;
- background: url(rightfoot.png);
- margin-bottom: 100px;
- -webkit-transform-origin: rightright top;
- -webkit-animation: rightfoot .6s ease-in-out infinite;
- }
- @-webkit-keyframes rightfoot{
- 0%,50%,100%{
- -webkit-transform: rotate(0deg);
- }
- 30%{
- -webkit-transform: rotate(10deg);
- }
- }
代码应该还是很简单就能看懂的,不足之处在于图片没有合并,就凑合吧,主要目的还是对CSS3动画(特别是3d)知识点的学习及实践。多练习,才能记得更牢,用得更顺,这只是开始……
PS:附上我抠的图片
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。原文链接:http://www.cnblogs.com/jr1993/p/4654622.html
CSS3,小黄人,动画
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓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]