其实我做css3动画也没有多久,这篇文章目标人群是css3动画的新手,不喜勿喷。

分类

目前我接触到的css3动画有2类:一种是transition的,另一种是@keyframes的。

两者的区别就是,transition的动画表达是从一种状态到另一种状态,而@keyframes更加灵活,一个动画可以在不同进度表现成不同的状态。

当然,如果从操作的对象进行分类(就我目前接触的而言),我想可以分3种,一种是html元素,一种是svg的,还有就是sprites的。

大家可能见过一个css3动画是关于一个会动的大象

大象的身体是由很多个`div`构成的,我们可以给每一个div都加上动画;

另一种是svg,美工用AI给你做一个图,图内有若干个已经命名的图层,图内的元素相应编好组,输出svg后,拖进编辑器,你就可以看到id名和图层命名相同的标签,看到编组后的<g></g>标签,这时候你会发现,svg的元素和上面例子的div差不多,而且形状还不用自己想出来,美工已经帮你做好了,剩下来的就是你要给它加动画了;

还有一种sprites,美工把整个动画都用AE输出了,然后你只需要把动画扔到PS,把全部帧扔在一起做出一个长图,再通过变换background-position的属性,就可以做出动画效果了。

## 入门
> 最佳的入门选择就是`transition`。

transition意思是过渡,可以理解成从一种状态变成另一种状态。

这些状态包括很多,我自己没整理出来,暂时引用一下别人整理到的Transition 所支持的css属性.

像transition这个属性,我们经常用hover与它搭配,写好hover前后的变化,加上transition属性就可以让他们过渡了。

效果:

源码:

	<div class="shape width">改变宽</div>
<div class="shape height">改变高</div>
<div class="shape bg">改变背景</div>
<div class="shape font">改变字体</div>
<div class="shape bd-r">改变矩形角</div>
<div class="shape translate">平移</div>
<div class="shape shadow">改变阴影</div>
<div class="shape rotate">旋转</div>
<div class="shape scale">缩放</div>
.shape{
width: 100px;
height: 100px;
background: #777;
float: left;
margin-right: 3px;
color: #fff;
line-height: 100px;
text-align: center;
transition: 0.5s;
border: 1px solid #555;
}
.width:hover{
width: 200px;
}
.height:hover{
height: 200px;
}
.bg:hover{
background: #000;
}
.font:hover{
font-size: 20px;
color: yellow;
}
.bd-r:hover{
border-radius: 50px;
}
.translate:hover{
transform: translate(0,20px);
}
.shadow:hover{
box-shadow: 0px 5px 5px #000;
}
.rotate:hover{
transform: rotate(30deg);
}
.scale:hover{
transform: scale(1.5,1.5);
}

进阶

其实也算不上进阶,@keyframes这个玩意大家稍微花点时间就能很轻易的学会了。

其实 @keyframes 的效果在特定条件下和 transition 一样,就是只定义了 0%和100% 或者 from和to 状态下的 @keyframes 和 transition 一样。

源码:(这个svg图是我用AI画出来的,感兴趣的可以自己画一个)

#change{
display: block;
height: 100px;
width: 50px;
background: #999;
transition: 0.3s;
}
#shape{
width: 600px;
height: 200px;
margin-left: 50%;
position: relative;
left: -300px;
}
@keyframes rotate{
0%{
transform: rotate(0);
}
100%{
transform: rotate(360deg);
}
}
.rotate{
/*transition: 0.5s;*/
transform-origin: 30px 30px;
animation: rotate 10s linear infinite;
}

而@keyframes灵活的是,它还能定义中间的状态,可以加个25%,50%,75%……

开篇我就写这些,感兴趣的可以继续看下一篇,以后会更新。

进入css3动画世界(一)的更多相关文章

  1. 进入css3动画世界(二)

    进入css3动画世界(二) 今天主要来讲transition和transform入门,以后会用这两种属性配合做一些动效. 注:本文面向前端css3动画入门人员,我对这个也了解不深,如本文写的有纰漏请指 ...

  2. 如何制作css3的3d动画——以骰子旋转为例,详解css3动画属性

    首先先来看两个用css3实现的炫酷的3d动画效果 1 2 3 4 5   6 你没看错,这个炫酷的效果都是用css3实现的. 下面是动画实现所需要用到的几个css3属性. 1.perspective: ...

  3. css3动画应用-音乐唱片旋转播放特效

    css3动画应用-音乐唱片旋转播放特效 核心点: 1.设置图片为圆形居中,使图片一直不停旋转. 2.文字标题(潘玮柏--反转地球)一直从左到右不停循环移动. 3.点击图标,音乐暂停,图片停止旋转:点击 ...

  4. css3动画第一式--简单翻滚

    在w3cschool上面查阅css3的动画语法手册时,发现“css3 动画”栏目首页放了一个翻滚的div动画案例,觉得挺好看的,于是就自己模仿着写了一下,感觉还行O(∩_∩)O哈哈~ 查看原地址 下面 ...

  5. CSS3动画制作

    CSS3动画制作 rotate 绕中心旋转 fadeInPendingFadeOutUp 先渐现,停留2s,再向上滑动并逐渐消失 fadeInUp2D 向上滑动并渐现, 因Animate.css的fa ...

  6. 学习CSS3动画(animation)

    CSS3就是出了不少高大上的功能,3D效果.动画.多列等等.今天写篇文章记录怎么一下怎么用CSS3写一个动画. 丑话还得说前头,IE9以及以下版本不支持CSS3动画(如真要实现可以考虑用js,不过估计 ...

  7. 用CSS3动画,让页面动起来

    以前就听说过有个库,叫animate.css,但是自己并没有在实际项目中使用过,这次正好要做个招聘页面,得以利用一下这个库,在经常会卡顿的UC浏览器中也能流畅执行. 扫描下面的二维码,可以看到在线的d ...

  8. CSS3动画几个平时没注意的属性

    一.timing-function: steps() 一开始在使用CSS3的时候并没有太注意这个timing-function,只是注意到自定义贝塞尔曲线. 1)一个项目中的实例 先来看看左边加了st ...

  9. 用CSS3动画特效实现弹窗效果

    提示:如果大家觉得本篇实现的弹窗效果有用,可持续关注.接下会添加更多效果并且封装成插件,这样使用就方便了.效果查看: https://heavis.github.io/hidialog/index.h ...

随机推荐

  1. 转每天一个linux命令(8):cp 命令

    cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一.一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数.但是如果是 ...

  2. 安装oracle后登录时出现 ERROR: ORA-01031 insufficient privileges

    运行环境:在自己笔记本电脑(win10)上安装测试 操作系统版本:64位win8.1 Oracle版本:64位 oracle 11g 安装oracle 成功后//以管理员身份登录oracle 在cmd ...

  3. ADO.NET中SQL Server数据库连接池

    连接到数据库服务器通常由几个需要很长时间的步骤组成. 必须建立物理通道(例如套接字或命名管道),必须与服务器进行初次握手,必须分析连接字符串信息,必须由服务器对连接进行身份验证,必须运行检查以便在当前 ...

  4. 说说 DWRUtil

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp27 说说 DWRUtil 比如我们从服务器端获得了一个citylist的数 ...

  5. 第2阶段——编写uboot之编译测试以及改进(3)

    编译测试: 1.将写好的uboot复制到linux下面 2.make编译,然后将错误的地方修改,生成boot.bin (编译出错的解决方案:http://www.cnblogs.com/lifexy/ ...

  6. dreamweaver代码提示失效

    原文地址:dreamweaver代码提示失效作者:云中雁 2007-03-23 12:19:22|  分类: 编程手记 |  标签:web2.0  javascript   |字号大中小 订阅 吴庆民 ...

  7. 201521123065《java程序设计》第8周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 1.Map通过get(key)来获取值: 2.HashMap和Hash ...

  8. 201521123033《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...

  9. 201521123002 《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 2. 书面作业 作业参考文件下载 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能 ...

  10. JAVA课程设计 学生成绩管理

    学生成绩管理 可实现功能: 添加学生功能:姓名.学号.性别.出生年月日.(学号自动生成且唯一) 添加学生成绩功能:每个人都有数学.Java与体育四门课,可分课程输入成绩. 根据学生学号查找学生成绩功能 ...