学习CSS3动画(animation)
CSS3就是出了不少高大上的功能,3D效果、动画、多列等等。今天写篇文章记录怎么一下怎么用CSS3写一个动画。
丑话还得说前头,IE9以及以下版本不支持CSS3动画(如真要实现可以考虑用js,不过估计效果也不太好)。chrome和safafi建议加上前缀-webkit-以向前兼容老版本。
今天简单的做一个动画。
首先,先简单画一个div,然后添上背景图片。
<body>
<div class="demo">
我是demo
</div>
</body>
.demo{
width: 120px;
height: 120px;
margin: 100px auto;
background: url(img/demo.jpg) no-repeat;
}
一个普通的DIV就出来了 如右:
接着我们让它动起来
先写一个方法,这个方法描述这个图片该如何运动
@keyframes run_animation{
from {
transform: rotatez(0deg);
}
to {
transform: rotatez(360deg);
}
}
这个animation_run就是这个方法的名字。等下需要把名字关联到相关的元素里。
from是描述动画的起始状态,to是动画的结束状态。
所以这个方法就是让一个元素按顺时针方向转动360度,非常简单。
from to往往不能满足我们日常开发所需,所以还有这种写法
@keyframes run_animation{
0%{
transform:rotatex(0deg);
}
16%{
transform: rotatey(-90deg);
}
33%{
transform: rotatey(-90deg) rotatez(135deg);
}
50%{
transform: rotatey(225deg) rotatez(135deg);
}
66%{
transform: rotatey(135deg) rotatex(135deg);
}
83%{
transform: rotatex(135deg);
}
100%{
transform: rotatex(0deg);
}
}
这种描述让动画可以有更加丰富炫酷的动作。通过百分比来描述每个阶段该元素的动态,0%就是上面说的from,100%就是to。其实这个也很简单对吧~
动画就这么容易的写好了。接下来我们把动画关联到我们的图片上。
.demo{
width: 120px;
height: 120px;
margin: 100px auto;
animation: run_animation 12s linear infinite; /*关联动画名称,定义动画时长,动画播放速度曲线,播放次数*/
background: url(img/demo.jpg) no-repeat 100%;
}
就是这么简单一句代码,图片就能按照我们定义的方法动起来了。
要是你现在发现动画没有动,那可能是下面的原因之一:
1.动画名称与@keyframes定义的名称不符;
2.没有定义动画播放时长,默认是0S,即不播放动画。上述代码定义12S;
3.在IE9及以下浏览器运行该代码,IE9及以下不支持CSS3 animation;
4.动画方法定义不对,方法定义的每个阶段中样式都是一样的。像下面这样
@keyframes run_animation{
0%{
transform: rotatez(90deg);
}
50%{
transform: rotatez(90deg);
}
100%{
transform: rotatez(90deg);
}
}
好了,这时候动画应该是动起来了。接着说动画中别的选项:
1.animation-iteration-count: 动画播放次数,想播放几次就写几。我这里用了无限次就是infinite
2.animation-timing-function:动画速度曲线。这个速度曲线有点复杂,涉及到一个贝塞尔函数。不想深入探索贝塞尔就直接用现成的linear、ease、ease-in、ease-out、ease-in-out。要是你懂贝塞尔,可以用cubic-bezier(n,n,n,n),这个比较高大上,我觉得是装逼界的利器。
3.animation-delay:动画可以延时播放,参数也是n S。和animation-duration不一样,animation-duration是动画播放时长。
上面几个属性都可以简写到animation中,就像我上面的栗子一样。
还有逆向播放、暂停这些属性就不说了,有需要可以去看http://www.w3school.com.cn/css3/css3_animation.asp或者
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Animations/Using_CSS_animations
如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知 ending~
学习CSS3动画(animation)的更多相关文章
- 前端CSS3动画animation用法
前端CSS3动画animation用法 学习如下动画属性 @keyframes animation-name animation-duration animation-delay animation- ...
- css3学习--css3动画详解一(animation属性)
***介绍的属性并不完全,写的都是我认为容易混淆的难点属性,所以属性会在最后综合案例展示~ 一.Keyframes介绍: Keyframes被称为关键帧,其类似于Flash中的关键帧.在CSS3中其主 ...
- CSS3 动画 animation和@keyframes
CSS3 @keyframes 规则 如需在 CSS3 中创建动画,您需要学习 @keyframes 规则. @keyframes 规则用于创建动画.在 @keyframes 中规定某项 CSS 样式 ...
- CSS3 动画animation
关键帧 什么是关键帧.一如上面对Flash原理的描述一样,我们知道动画其实由许多静态画面组成,第一个这样的静态画面可以表述为一帧.其中关键帧是在动画过程中体现了物理明显变化的那些帧. 比如之前的例子中 ...
- css3 动画(animation)-简单入门
css3之动画(animation) css3中我们可以使用动画,由于取代以前的gif图片,flash动画,以及部分javascript代码(相信有很多同学都用过jquery中的animate方法来做 ...
- CSS3动画animation认识,animate.css的使用
CSS动画 可以取代js动画 在移动端会更加流畅! 下面是一个的绘制太阳系各大行星运行轨迹笔记,可以自学参考! -------------------------------------------- ...
- CSS3 动画Animation的8大属性
animation复合属性.检索或设置对象所应用的动画特效. 如果有多个属性值时以","隔开,适用于所有元素,包含伪对象:after和:before 1.animation-nam ...
- css3动画animation
动画:animation animations这物似乎还是只在webkit,moz核心的浏览器上起作用 <!DOCTYPE html><html lang="en&qu ...
- css3学习--css3动画详解二(3d效果)
一.设置3D场景 perspective:800 //浏览器到物体的距离(像素)perspective-origin:50% (x轴) 50% (y轴) //视点的位置 transf ...
随机推荐
- 2017《时间的朋友》罗振宇跨年演讲ppt
2016年12月31日晚,罗辑思维的罗振宇将在深圳湾春茧体育馆进行2017<时间的朋友>跨年演讲,很多网友一直在找直播的地址还是没找到,现在ytkah就第一时间分享一些精彩ppt弥补网友的 ...
- RabbitMQ 集群安装过程详解
一.安装Erlang 1.rabbitMQ是基于erlang的,所以首先必须配置erlang环境. 从erlang官网下载 otp 18.3.下载链接:http://erlang.org/downlo ...
- 移动端浏览器body的overflow:hidden并没有什么作用
今天突然遇到一个问题,使用li模拟select,但是碰到一个很尴尬的问题,给body加了overflow:hidden,但是body并没有禁止滚动条,滚动条依旧顺滑. <!DOCTYPE htm ...
- js中Window 对象及其的方法
window.location 对象 window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面.window.location 对象在编写时可不使用 wind ...
- sublime text快捷键
Ctrl+Shift+V:粘贴并格式化Ctrl+D:选择单词,重复可增加选择下一个相同的单词Ctrl+L:选择行,重复可依次增加选择下一行Ctrl+M:跳转到对应括号Ctrl+K+B:开关侧栏Ctrl ...
- OpencV2.4.13前景提取示例代码
OpenCV2编译 基于高斯混合模型 #include<fstream> #include<iostream> #include<iostream> #inclu ...
- Mongo基础使用,以及在Express项目中使用Mongoose
MongoDB的基本使用 MongoDB特点: 使用BSON存储数据 支持相对丰富的查询操作(相对其他nosql数据库) 支持索引 副本集(支持多个实例/多个服务器运行同个数据库) 分片(数据库水平扩 ...
- Battleships in a Board
Given an 2D board, count how many different battleships are in it. The battleships are represented w ...
- ASP中Lable控件的定位问题
问题:Lable控件的定位问题:找了好久都没找到可以将Lable控件定位的办法,网上说可以将修改position这个属性来实现定位,可是我始终没找到这个属性. (1)首先,在源代码中添加 style ...
- VS工具如何新建筛选器
最近,遇到了一个问题,别人用VS工具新建了一个工程,不知道怎么的,就是没有办法新建筛选器. 今天,终于解决了,记录下,也希望能够帮助更多的人. 当我们的工程目录里的文件越来越多的时候,这时候需要建立帅 ...