css3动画功能介绍
一:过渡动画---Transitions
含义:在css3中,Transitions功能通过将元素的某个属性从一个属性值在指定的时间内平滑过渡到另一个属性值来实现动画功能。
Transitions属性的使用方法如下所示:
transition: property | duration | timing-function | delay
transition-property: 表示对那个属性进行平滑过渡。
transition-duration: 表示在多长时间内完成属性值的平滑过渡。
transition-timing-function 表示通过什么方法来进行平滑过渡。
transition-delay: 定义过渡动画延迟的时间。
浏览器支持程度:IE10,firefox4+,opera10+,safari3+及chrome8+
下面是transitions过渡功能的demo如下:
HTML代码如下:
<div class="transitions">transitions过渡功能</div>
CSS代码如下:
.transitions {
-webkit-transition-property: background-color;
-webkit-transition-duration: 1s;
-webkit-transition-timing-function: linear; -moz-transition-property: background-color;
-moz-transition-duration: 1s;
-moz-transition-timing-function: linear; -o-transition-property: background-color;
-o-transition-duration: 1s;
-o-transition-timing-function: linear;
}
.transitions:hover {
background-color: #00ffff;
}
demo效果演示如下:
上面的,有时候我们为了书写方便,可以简写如下写法:
.transitions {
-webkit-transition: background-color 1s linear;
-moz-transition: background-color 1s linear;
-o-transition: background-color 1s linear;
}
.transitions:hover {
background-color: #00ffff;
}
如果想要过渡多个属性,可以使用逗号分割,如下代码:
div { -webkit-transition: background-color 1s linear, color 1s linear, width 1s linear;}
2. 我们可以使用Transitions功能同时平滑过渡多个属性值。
如下HTML代码:
<h2>transitions平滑过渡多个属性值</h2>
<div class="transitions2">transitions平滑过渡多个属性值</div>
CSS代码如下:
.transitions2 {
background-color:#ffff00;
color:#000000;
width:300px; -webkit-transition: background-color 1s linear, color 1s linear, width 1s linear;
-moz-transition: background-color 1s linear, color 1s linear, width 1s linear;
-o-transition: background-color 1s linear, color 1s linear, width 1s linear;
}
.transitions2:hover {
background-color: #003366;
color: #ffffff;
width:400px;
}
demo演示如下:
transitions平滑过渡多个属性值
二:Transform功能:
Transform的含义是:改变,使…变形,转换的意思。
语法:none|<transform-function>[<transform-function>]* 初始值是none。
Transform-function 的取值如下:
- matrix() 定义距阵变换。基本上很少使用。
- translate() 移动元素对象。
- scale() 缩放元素对象。
- rotate() 旋转元素对象。
- skew() 倾斜元素对象。
下面我们来分解 2~5中的各个属性的使用吧!如下:
一:transform:rotate()
含义是旋转,其中的deg是 度 的意思,如”10deg”表示10度的意思。
如下HTML代码:
<h2>transform属性-rotate旋转的demo</h2>
<div class="rotate">
<img src="http://m1.img.srcdd.com/farm5/d/2015/0228/22/FD9886C5434AC71115812ED3DB6409B9_B500_900_500_269.jpeg"/>
</div>
CSS代码如下:
.rotate img {
-webkit-transform:rotate(0deg);
-moz-transform:rotate(0deg);
-o-transform:rotate(0deg);
transition:1s all linear;
}
.rotate {width:520px;height:280px;overflow:hidden;}
.rotate img:hover {-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg)}
demo演示如下:
transform属性-rotate旋转的demo

二:transform:skew(); 含义倾斜的意思。如下偏斜20度的demo
HTML代码如下:
<h2>transform属性-skew倾斜的demo</h2>
<div class="skew">
<img src="http://m1.img.srcdd.com/farm5/d/2015/0228/22/FD9886C5434AC71115812ED3DB6409B9_B500_900_500_269.jpeg"/>
</div>
CSS代码如下:
.skew img {
-webkit-transform:skew(0deg);
-moz-transform:skew(0deg);
-o-transform:skew(0deg);
transition:1s all linear;
}
.skew {width:520px;height:280px;overflow:hidden;}
.skew img:hover {-webkit-transform:skew(20deg);-moz-transform:skew(20deg);-o-transform:skew(20deg)}
demo演示如下:
transform属性-skew倾斜的demo

三:transform:scale();
含义:比如“1.5”表示以1.5的比例放大,-1.5 表示以1.5的比例缩小。
如:-webkit-transform:scale(1.5); 在chrome或者safari浏览器下放大1.5倍。
HTML代码如下:
<h2>transform属性-scale缩放的demo</h2>
<ul class="transform">
<li>
<img src="http://m3.img.srcdd.com/farm4/d/2015/0228/22/291A00ACAACA473D6EE206F118EB473C_B500_900_110_110.jpeg"/>
</li>
<li>
<img src="http://m2.img.srcdd.com/farm5/d/2015/0228/22/2990B0DA0492FBEC9D71FCA00ACE814A_B500_900_110_110.jpeg"/>
</li>
<li>
<img src="http://m2.img.srcdd.com/farm4/d/2015/0228/22/61DB5F16DAD802B61F976BE1FE09A4E9_B500_900_110_110.jpeg"/>
</li>
<li>
<img src="http://m1.img.srcdd.com/farm5/d/2015/0228/22/3AE45F87A04F6F2C0B688F6C844F52CE_B500_900_110_93.jpeg"/>
</li>
</ul>
CSS代码如下:
ul,li{list-style:none;}
.transform{ width:205px; margin:100px auto;overflow: hidden;padding: 50px;}
.transform li{ border-radius: 4px;background: #fff;width:45px; height:45px;margin:3px; float:left; transition:.1s all ease;} .transform li img{border-radius: 4px;height: 43px;width: 43px;border: 1px solid #fff;cursor: pointer;} .transform li:hover{-webkit-transform:scale(1.5);-moz-transform:scale(1.5);-o-transform:scale(1.5);transform:scale(1.5);}
demo演示如下:
transform属性-scale缩放的demo
四:transform:translate();
含义:变动,位移
如:-webkit-transform:translate(120px,0); 表示向右位移120px,向上位移0px;向左向下位移则为负 “-”,如下demo
HTML代码如下:
<h2>transform属性-translate变动位移的demo</h2>
<div class="translate">
<img src="http://m1.img.srcdd.com/farm5/d/2015/0228/22/FD9886C5434AC71115812ED3DB6409B9_B500_900_500_269.jpeg"/>
</div>
CSS代码如下:
.translate img {
-webkit-transform:translate(0,0);
-moz-transform:translate(0,0);
-o-transform:translate(0,0);
transition:1s all linear;
}
.translate {width:520px;height:280px;overflow:hidden;}
.translate img:hover {-webkit-transform:translate(120px,0);-moz-transform:translate(120px,0);-o-transform:translate(120px,0)}
demo演示如下:
transform属性-translate变动位移的demo

三:Animations功能;
Animations功能与Transitions功能相同,都是通过改变元素的属性值来实现动画效果的。它们的区别在于:使用Transitions功能是只能通过指定属性的开始值与结束值。然后在这两个属性值之间进行平滑过渡的方式来实现动画效果,因此不能实现复杂的动画效果;而Animations则通过定义多个关键帧以及定义每个关键帧中元素的属性值来实现更为复杂的动画效果。
用法:@-webkit-keyframes 关键帧的集合名 {创建关键帧的代码}
如下面的代码:
@-webkit-keyframes mycolor {
0% {background-color:red;}
40% {background-color:darkblue;}
70% {background-color: yellow;}
100% {background-color:red;}
}
.animate:hover {
-webkit-animation-name: mycolor;
-webkit-animation-duration: 5s;
-webkit-animation-timing-function:linear;
}
如上:-webkit-animation-name属性中指定关键帧集合的名称,
-webkit-animation-duration属性指定完成整个动画所需要完成的时间,timing-function 值实现动画的方法。
可以看如下demo
HTML代码如下:
<h2>使用animate实现更为复杂的动画</h2>
<div class="animate">使用animate实现更为复杂的动画</div>
CSS代码如下:
.animate {background-color:red;height:100px;} @-webkit-keyframes mycolor {
0% {background-color:red;}
40% {background-color:darkblue;}
70% {background-color: yellow;}
100% {background-color:red;}
}
@-moz-keyframes mycolor {
0% {background-color:red;}
40% {background-color:darkblue;}
70% {background-color: yellow;}
100% {background-color:red;}
} .animate:hover {
-webkit-animation-name: mycolor;
-webkit-animation-duration: 5s;
-webkit-animation-timing-function:linear; -moz-animation-name: mycolor;
-moz-animation-duration: 5s;
-moz-animation-timing-function:linear;
}
demo演示如下:
使用animate实现更为复杂的动画
如上就可以实现在chrome,firefox,safari及opera浏览下上的效果了;
注意:在opera中写如下css代码是不生效的;如下:
.animate:hover { -o-animation-name: mycolor; -o-animation-duration: 5s; -o-animation-timing-function:linear; } @-o-keyframes mycolor { 0% {background-color:red;} 40% {background-color:darkblue;} 70% {background-color: yellow;} 100% {background-color:red;} }
实现动画的方法如下:
linear: 在动画开始时到结束的时候以同样的速度进行改变。
ease-in 在动画开始时候速度很慢,然后速度沿曲线值进行加快。
ease-out 在动画开始时 速度很快,然后速度沿曲线值进行放慢。
ease 动画开始时速度很慢,然后速度沿曲线值进行加快,然后再沿曲线值放慢。
ease-in-out 动画开始时速度很慢,然后速度沿曲线值进行加快,然后再沿曲线值放慢
下面我们继续使用 animate实现多个属性值同时改变的动画 demo如下:
HTML代码如下:
<h2>使用animate实现多个属性值同时改变的动画</h2>
<div class="animate2">使用animate实现多个属性值同时改变的动画</div>
CSS代码如下:
.animate2 {
background-color:yellow;
width:500px;
height:100px;
}
@-moz-keyframes mycolor2 {
0% {
background-color: red;
-moz-transform: rotate(0deg);
}
40% {
background-color: darkblue;
-moz-transform: rotate(30deg);
}
70% {
background-color: yellow;
-moz-transform: rotate(-30deg);
}
100% {
background-color: red;
-moz-transform: rotate(0deg);
}
}
@-webkit-keyframes mycolor2{
0% {
background-color: red;
-webkit-transform: rotate(0deg);
}
40% {
background-color: darkblue;
-webkit-transform: rotate(30deg);
}
70% {
background-color: yellow;
-webkit-transform: rotate(-30deg);
}
100% {
background-color: red;
-webkit-transform: rotate(0deg);
}
}
.animate2:hover {
-webkit-animation-name: mycolor2;
-webkit-animation-duration:5s;
-webkit-animation-timing-function: linear; /* 无限循环旋转 当count为整数时候,那么就旋转的次数就等于该整数值*/
-webkit-animation-iteration-count:infinite; -moz-animation-name: mycolor2;
-moz-animation-duration:5s;
-moz-animation-timing-function: linear; /* 无限循环旋转 当count为整数时候,那么就旋转的次数就等于该整数值*/
-moz-animation-iteration-count:infinite;
}
demo演示如下:
使用animate实现多个属性值同时改变的动画
css3动画功能介绍的更多相关文章
- CSS3动画功能
1.transition功能 transition属性的使用方法:transition:property duration timing-function; 其中property表示对哪个属性进行平滑 ...
- CSS3中的动画功能(一)
css3中的动画功能分为transitions功能和animations功能,这两种功能都可以通过改变css属性值来产生动画效果.今天带大家一起来看看css3动画功能中的transitions的用法. ...
- CSS3基础(2)—— 文字与字体相关样式、盒子类型、背景与边框相关样式、变形处理、动画功能
一. CSS3 文字与字体相关样式 1. 给文字添加阴影 text-shadow: length length length ccolor; 属性适用于文本阴影,指定了水平阴影,垂直阴影,模糊的距离, ...
- 如何使用js捕获css3动画
如何使用js捕获css3动画 css3动画功能强大,但是不像js,没有逐帧控制,但是可以通过js事件来确定任何动画的状态. 下面是一段css3动画代码: #anim.enable{ -webkit-a ...
- CSS3动画变形Animations
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Autodesk Maya 2019 for Mac(三维动画软件)最新功能介绍
Autodesk Maya是美国Autodesk公司出品的世界顶级的三维动画软件,应用对象是专业的影视广告,角色动画,电影特技等.Maya功能完善,工作灵活,易学易用,制作效率极高,渲染真实感极强,是 ...
- CSS3中的动画功能(二)
上一篇文章讲解了css3动画中的一个即transitions,那么今天来说说另外一个animations.和transitions不同的是animations可以定义多个关键帧以及每个关键帧中元素的属 ...
- CSS3 动画一瞥
伴随HTML5而来的CSS3让前端大湿们可以用简单的CSS样式即可写出动画效果来,而在这之前,一提到动画我们可能会想到JavaScript,Flash,Java插件等.如果是用JavaScript那倒 ...
- css3动画由浅入深总结
阅读目录 一:过渡动画---Transitions 二:Animations功能 三:translate(tx,ty) 四:scale(x,y) 五:rotate(x): 5.1:skew(x,y): ...
随机推荐
- 【16】命令模式(Command Pattern)
一.前言 最近项目中发现,对于设计模式的了解是必不可少的,当然对于设计模式的应用那更是重要,可以说是否懂得应用设计模式在项目中是衡量一个程序员的技术水平,因为对于一个功能的实现,高级工程师和初级工程师 ...
- Apache poi 使用经验分享
我在使用apache poi导入导出Excel做项目过程中,遇到了许许多多的问题,在此简单罗列. 1.xls和xlsx的区分:poi将2003以前和2007以后的excel封装成了两个不同的实现:HS ...
- JavaScript弹出窗口方法
本文实例汇总了常用的JavaScript弹出窗口方法,供大家对比参考,希望能对大家有所帮助.详细方法如下: 1.无提示刷新网页: 大家有没有发现,有些网页,刷新的时候,会弹出一个提示窗口,点“确定”才 ...
- JS里面的懒加载(lazyload)
懒加载技术(简称lazyload)并不是新技术, 它是js程序员对网页性能优化的一种方案.lazyload的核心是按需加载 涉及到图片,falsh资源 , iframe, 网页编辑器(类似FCK)等占 ...
- HTTP协议学习随笔
一 HTTP概述 HTTP简单说其实就是一套语言交流规则!Http使用的是可靠的数据传输协议,因此即使数据来自地球的另一端,也能够确保数据在传输过程中不会被损坏或产生混乱. B/S结构 用户在浏览器, ...
- Intellij IDEA添加项目依赖
在idea的设置中,存在下面几个标签页 Libraies是向idea中添加的jar或者文件夹进入. module是添加具体的项目依赖,后面的选项为部署时是否忽略. artifacts配置打包方式,需要 ...
- CAT3 SAP tcode - Time Sheet: Display Times
CAT3 SAP tcode - Time Sheet: Display Times CAT3 (Time Sheet: Display Times) is a standard SAP transa ...
- Hibernate 批处理
批处理 考虑一种情况,你需要使用 Hibernate 将大量的数据上传到你的数据库中.以下是使用 Hibernate 来达到这个的代码片段: Session session = SessionFact ...
- 使用MyEclipse建立working set
1.用eclipse或者MyEclipse开发久了后,会有很多的项目,就算关闭了还会有很多,这是需要建立一个working set,相当在工作区中建立项目文件夹分类放自己做过的一些项目. 如下图: ...
- 转:.NET 面试题汇总(二)
目录 本次给大家介绍的是我收集以及自己个人保存一些.NET面试题第二篇 简介 1.接口 2.您在什么情况下会用到虚方法或抽象类,接口? 3.重载(Overload )和覆写(Override)的区别 ...