CSS3实现小黄人动画

转载请注明出处,谢谢!

每次看到CSS3动画就心痒痒想试一下,记得一个多月前看了白树哥哥的一篇博客,突然开窍,于是拿他提供的demo试了一下,感觉很棒!下图为demo提供的动画帧设计稿。

charector

自己也想说搞一个DIY的动画出来,可是,会PS不一定会设计啊,我搞不出一套动画设计稿出来啊【抓狂】….于是乎,去了站酷网找找素材,我果然还是太天真了,最后从心只找到了一张图:

1

联想到我要做CSS3动画,呵呵……怎么办 ? ——没办法,抠呗!(此处勿喷,着实无素材)

……最后效果变成这样子,这是移动端的例子!(gif图有卡顿现象,请凑合看吧,非喜勿喷…):

h

OK,其实主要目的还是知识点的学习吧:

这个demo涉及的知识点有:

perspective

perspective-origin

transform-style

transform-origin

animation

@keyframes

translate3d,translateX,rotateY….

这些知识点有些涉及css3d动画,各个知识点的具体详解我就不解释了,有兴趣可以到这里了解一下:http://isux.tencent.com/css3/index.html

回到这个案例,话说这么挫的动画是怎么具体实现的呢? 我将分享代码给大家练习:

html结构:

<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代码:

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: right;margin-right: 100px;}.light .load{position: absolute;width: 500px;height: 1500px;background: -webkit-gradient(linear, left top, left bottom, color-stop(51%,#aadbdc), color-stop(52%,#ffffff));background: -webkit-linear-gradient(top, #aadbdc 51%,#ffffff 52%);background: linear-gradient(to bottom, #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;right: 58px;top:-5px;width: 100px;height: 17px;background: url(lefthair.png);-webkit-transform-origin: left bottom;-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: right bottom;-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;right: 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;right: 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;right: 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: right 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:附上我抠的图片

1 1.png

righthairrighthair.png

lefthairlefthair.png

eyeblackeyeblack.png

whiteeyewhiteeye.png

mousemouse.png

rightfootrightfoot.png

leftfootleftfoot.png

转载于:https://www.cnblogs.com/jr1993/p/4654622.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574454.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ACM用N个正方体来建造金字塔问可以建造多少层

Description Vanya got n cubes. He decided to build a pyramid from them. Vanya wants to build the pyramid as follows: the top level of the pyramid must consist of 1 cube, the second level must consist of 1  2  3 cubes, the third level must have 1  2 …

editview只输入英文_搜狗输入法Mac版更新:适配苹果M1处理器

12月24日消息 据搜狗输入法官方&#xff0c;近日Mac版应用程序已完成更新&#xff0c;新版本引入苹果M1桌面处理器原生支持&#xff0c;体验更优、速度更快&#xff0c;兼容搭载MacBook Pro、MacBook Air和Mac mini等机型&#xff0c;令使用苹果M1系列产品的用户们获得更加高效…

添加nginx为系统服务(service nginx start/stop/restart)

1、在/etc/init.d/目录下编写脚本&#xff0c;名为nginx 1 #!/bin/sh 2 # 3 # nginx - this script starts and stops the nginx daemon 4 # 5 # chkconfig: - 85 15 6 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \ 7 # proxy and IMAP/POP3…

angular div 滚动条事件_DOM事件

事件是在编程时系统内发生的动作或发生的事情&#xff08;单击、鼠标移动、滚动页面等&#xff09;。HTML DOM 使 JavaScript 有能力对 HTML 事件做出反应。JS与HTML之间的交互是通过事件实现的&#xff0c;DOM支持大量的事件。事件的本质是程序各个组成部分之间的一种通信方式…

python 保存图片代码_最简单的selenium+Python自动右键保存图片

[toc]最近需要爬古籍影印版图片&#xff0c;但是对方网站有反爬虫&#xff0c;于是考虑用selenium&#xff0c;selenium比想象中的简单。右键的难点在于在元素上执行右键之后&#xff0c;selenium就不能操作菜单了。所以需要别的办法&#xff0c;有的使用autoit第三方软件&…

iOS_TableView的相关操作

【1】取消Tableview中cell的下划线 //无论是原始cell还是开发者自定义的cell&#xff0c;在表中都是默认有下划线的&#xff0c;取消cell自带的下划线 [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; //一般情况下上面一句代码就能搞定&#xff0c;但…

python查看内存地址的内容_python中如何查看指定内存地址的内容

python中一般并不需要查看内存内容,但作为从C/C++过来的人,有的时候还是想看看内存,有时是为了验证内容是否与预期一致,有时是为了探究下内存布局。 from sys import getsizeof from ctypes import string_at getsizeof(...) getsizeof(object, default) -> int Return…

android byte[] 转string 好多问号_Android 仿抖音实现动态壁纸

code小生,一个专注 Android 领域的技术平台公众号回复 Android 加入我的安卓技术群作者&#xff1a;7_px链接&#xff1a;https://www.jianshu.com/p/fc5cf284abbb声明&#xff1a;本文已获7_px授权发表&#xff0c;转发等请联系原作者授权一、概述&#xff1a; 壁纸运行在一个…

游戏编程与游戏种类

游戏编程指利用计算机编程语言&#xff0c;如C编程语言、C、java等&#xff0c;编写计算机、手机或游戏机上的游戏。 目前流行的游戏编程语言为C编程语言&#xff0c;目前流行的游戏编程接口为DirectX9.0&#xff0c;还有OpenGL、SDL(Simple DirectMedia Layer)等。现在手机上玩…

print输出 pytorch_pytorch打印网络结构的实例

最简单的方法当然可以直接print(net)&#xff0c;但是这样网络比较复杂的时候效果不太好&#xff0c;看着比较乱&#xff1b;以前使用caffe的时候有一个网站可以在线生成网络框图&#xff0c;tensorflow可以用tensor board&#xff0c;keras中可以用model.summary()、或者plot_…

li:nth-child()和 li:nth-of-type()选择器区别

.demo li:nth-child(2)&#xff1a;表示demo下面第二个元素&#xff0c;若此元素不是li,则选择失败。.demo li:nth-of-type(2)&#xff1a;表示demo下面第二个li元素。转载于:https://www.cnblogs.com/lily2015/p/4661244.html

升序排序中国_干货满满!6行python代码挑战展示2020下半年中国最娱乐的人气男明星人气排行榜top10!...

本回答主要以2020下半年中国最娱乐的人气男明星top10变化动态条形图为例来展示如何用python生成动态条形图。知乎视频​www.zhihu.com一、 python生成动态条形图&#xff1a;以2020下半年中国最娱乐的人气男明星top10变化动态条形图为例。1. 安装第三方库1.1 下载第三方库的网址…

YII2 实现后台操作记录日志

一、连接linux服务器&#xff0c;创建数据文件 php yii migrate/create user_log 二、修改数据文件 console/migrations/m150721_032220_admin_log.php <?phpuse yii\db\Schema; use yii\db\Migration;class m150721_032220_admin_log extends Migration {public function…

cmd批量修改文件名 增加文字_Dynamo自动批量化修改文件名称

今天我们说一下如何批量化的修改文件名称&#xff0c;都9102年了总不能一个一个手动去修改吧。比如我们要对现有的族修改为带有我们企业缩写的族库,于是乎我把朋友的族就借过来了可以是下面这样&#xff1a;当然也不仅仅是修改族文件名称&#xff0c;我们可以修改任意文件夹下的…

CSS入门学习(转)

一、基础学习 1、何为CSS CSS是Cascading Style Sheets(层叠样式表)的简称&#xff0c;是一种标记语言,它不需要编译,可以直接由浏览器执行(属于浏览器解释型语 言). CSS文件也可以说是一个文本文件,它包含了一些CSS标记,CSS文件必须使用css为文件名后缀&#xff0c; 可以通…

在电脑上显示未知发布者怎么办_电脑开机后显示器黑屏只有鼠标能动,怎么办呢?...

开机黑屏进不了系统是很常见的电脑故障&#xff0c;导致该现象的原因也有很多种&#xff0c;有些用户是电脑开机后显示器黑屏只有鼠标能动&#xff0c;如果是这种情况该怎么办呢&#xff1f;出现电脑开机后显示器黑屏只有鼠标很有可能是资源管理器的问题&#xff0c;下面由维度…

ios图文详情加载html_前端项目009 Vue 信息分享系统 商品列表、详情

頔言頔语&#xff1a;进步&#xff0c;一定要进步&#xff0c;进步是跟收入持平的本钱。01 商品列表0101 路由配置和数据请求0102 上拉加载更多02 商品详情0201 详情数据请求和展示0202 轮播图组件提取0203 商品详情&#xff08;路由的本质理解&#xff09;01 商品列表0101 路由…

理解函数指针

在学习函数指针, 我遇到了问题, 我定义一个指针指向负责打印参数的函数, 1 void (*p)( int ) Fun; 好奇该指针存放的是什么&#xff08; 原以为是函数的入口地址&#xff09;&#xff0c;便调试观察一下他们的内存&#xff0c; Fun的值是 函数入口地址 0x00401030 Fun(i…

单元测试概念记录

单元测试 孤立的运行和测试某一个单元&#xff08;注重于每一个可能出错的细节&#xff09;。 优秀的单元测试的特性 1.自动的&#xff0c;可重复的 2.容易实现的 3.一旦写好将来都可以使用 4.任何人都可以运行 5.单击一个按钮就可以运行 6.可以快速的运行 判断是否是单元测试 …

zemax设置 像方远心_ZEMAX相机标定非常不完全指南

ZEMAX是广为使用的一款光学仿真软件&#xff0c;是进行光路设计和分析的利器&#xff1b;而相机标定&#xff0c;则是进行机器视觉任务时&#xff0c;拿到一款相机&#xff0c;对其实际参数进行确定的过程。因此看起来&#xff0c;二者其实主要是针对不同的侧重点。前者主要面向…