CSS自学笔记(14):CSS3动画效果
在CSS3中也新增了一些能够对元素创建动画处理的属性。通过这些新增的属性,我们可以实现元素从一种样式变换成另一种样式时为元素添加动态效果,我们就可以取代网页中的动态图片、flash动画和JavaScript了。
CSS3中新增的动画效果的属性以及主流浏览器支持情况
| 属性 | 浏览器支持 | ||||
|---|---|---|---|---|---|
| transition | IE | Firefox | Chrome | Safari(-webkit-) | Opera |
| @keyframes | IE | Firefox | Chrome(-webkit-) | Safari(-webkit-) | Opera |
| animation | IE | Firefox | Chrome(-webkit-) | Safari(-webkit-) | Opera |
注:
- IE9以及更早版本不支持这三个新增属性。
- 在Safari浏览器中,需要加(-webkit-)前缀。
- 在Chrome浏览器中,@keyframes和animation属性需要加(-webkit-)前缀。
transition属性
| 属性 | 描述 | 默认值 |
|---|---|---|
| transition | 简写,用于在一个属性中设置四个过渡属性。 | 无 |
| transition-property | 定义过渡效果的 CSS 属性的名称。 | 无 |
| transition-duration | 定义过渡效果所用时间。 | 0 |
| transition-timing-function | 定义过渡效果的时间曲线。 | ease |
| transition-delay | 定义过渡效果开始时间。 | 0 |
下面是一个简单的CSS样式
img {
width: 90px;
height: 90px;
transition-property: width, height, transform;
transition-duration: 1s, 1s, 1s;
transition-timing-function: ease-in-out, ease-in, ease-out;
transition-delay: 1s, 1s, 0s;
}
img:hover{
width: 200px;
height: 200px;
transform: rotate(90deg);
}
实现效果是当鼠标悬浮在元素(img)上时,他的宽度、高度和方向会发生变化,过渡时间都为1s,过渡方式分别为ease-in-out, ease-in和ease-out,旋转效果会立刻执行,而高宽操作会在1s后变化。
当鼠标移出元素所在范围时,它会逐渐变回原来的样式。

我们也可以transition简写来完成定义上面的样式:
img {
width: 90px;
height: 90px;
transition:width 1s ease-in-out 1s, height 1s ease-in 1s, transform 1s ease-out 0s; ;
}
img:hover{
width: 200px;
height: 200px;
transform: rotate(90deg);
}
我们还可以通过@keyframes规定来创建动画规则,通常用在较为复杂而又无需用到False动画和JavaScript的地方。
例如下面一个简单的动画效果
动画效果
部分CSS样式代码为:
#my_animate {
width: 60px;
height: 60px;
background: #060;
color: #fff;
position: relative;
font: bold 12px '微软雅黑';
padding: 20px 10px 0px 10px;
animation: my_animate 5s infinite;
}
@keyframes my_animate {
0% {transform: rotate(0deg);left:0px;}
25% {transform: rotate(90deg);left:0px;}
50% {transform: rotate(0deg);left:400px;}
55% {transform: rotate(0deg);left:400px;}
70% {transform: rotate(-30deg);left:400px;background:#ff9;color:#000;}
100% {transform: rotate(-360deg);left:0px;}
}
使用@keyframes创建动画时,需要绑定一个选择器。创建动画时至少要定义动画的名称和动画的时长,这样即可将@keyframes创建动画绑定到相应的选择器上。
若在创建动画时没有定义时长,那么就会取默认值0,就不会执行动画效果。
animation属性以及说明
| 属性 | 描述 | 说明 |
|---|---|---|
| @keyframes | 创建动画规则 | |
| animation | 定义动画简写属性 | 除了 animation-play-state 属性 |
| animation-name | 定义 @keyframes 动画的名称 | |
| animation-duration | 定义动画完成一个周期所花费时间(秒或者毫秒) | 默认值:0 |
| animation-timing-function | 定义动画的速度曲线 | 默认值 :ease |
| animation-delay | 定义动画何时开始 | 默认值 :0 |
| animation-iteration-count | 定义动画被播放的次数 | 默认值 :1 |
| animation-direction | 定义动画是否在下一周期逆向地播放 | 默认值 :normal |
| animation-play-state | 定义动画是否正在运行或暂停 | 默认值 :running |
| animation-fill-mode | 定义对象动画时间之外的状态 |
上面的定义的动画效果是一个周期5s,并且进行无限次的循环播放。在@keyframes中规定了动画的6各阶段的样式,最终形成一个简单的动画效果。
CSS自学笔记(14):CSS3动画效果的更多相关文章
- animate.css 一些常用的CSS3动画效果
大家已经开始在项目中使用一些CSS3动画效果了吧,这让网站在高端浏览器上看起来很上流.animate.css是一个老外做的各种CSS3动画的合集,比较全,也很炫,大家可以参考学习一下. 项目主页:ht ...
- CSS基础学习-15.CSS3 动画效果
- CSS Animatie是一款在线制作CSS3动画的工具,可以在线直接制作CSS3动画效果,生成代码
CSS Animatie是一款在线制作CSS3动画的工具,可以在线直接制作CSS3动画效果,生成代码 CSS Animatie 彩蛋爆料直击现场 CSS Animatie是一款在线制作CSS3动画的工 ...
- CSS3动画效果——js调用css动画属性并回调处理详解
http://www.jb51.net/css/258407.html 这篇文章主要详细介绍了CSS3动画效果回调处理,需要的朋友可以参考下 我们在做js动画的时候,很多时候都需要做回调处理,如在一个 ...
- 鼠标悬停css3动画效果
下载Demo 效果预览 html: <!DOCTYPE html> <html lang="en"> <head> <meta chars ...
- Bounce.js – 快速创建漂亮的 CSS3 动画效果
Bounce.js 是一个用于制作漂亮的 CSS3 关键帧动画的 JavaScript 库,使用其特有的方式生成的动画效果.只需添加一个组件,选择预设,然后你就可以得到一个短网址或者导出为 CSS 代 ...
- 第八十三节,CSS3动画效果
CSS3动画效果 学习要点: 1.动画简介 2.属性详解 3.简写和版本 本章主要探讨HTML5中CSS3的动画效果,可以通过类 Flash那样的关键帧模式控制运行. 一.动画简介 CSS3提 ...
- !!学习笔记:CSS3动画
一句话就有css3动画: 2016-6-29 <style type="text/css"> h1{background:#999;} h1:hover{border- ...
- 35个让人惊讶的CSS3动画效果
1. Pure CSS Coke Can 2. Colorful Clock 3. jQuery DJ Hero 4. Animated Pricing Column 5. Slick jQuery ...
- Css3动画效果,彩色文字效果,超简单的loveHeart
<!DOCTYPE html><html><head><meta charset="utf-8" /><title>Cs ...
随机推荐
- Java IO之序列化
序列化机制是Java语言内建的一种对象持久化方式,可以很容易的在JVM中的活动对象和字节数组之间转换.它的一个重要用途就是远程方法调用的时候,用来对开发人员屏蔽底层实现细节(远端的开发人员不知道这个对 ...
- 解决在IE浏览器下 boder边框出现断裂或虚线的问题
ie6.0下面经常会出现border边框断断续续的问题,等深一步了解了div之后自然会经常碰到这种问题了,不过初学div+css 的一般不会用遇到这个问题,因为初学者不会偷懒,等我们觉得用的很熟了,各 ...
- ASP.NET Core Web开发学习笔记-1介绍篇
ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...
- Android的动画
一.动画类型 Android的animation由四种类型组成:alpha.scale.translate.rotate XML配置文件中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画 ...
- 循环-10. 求序列前N项和*
/* * Main.c * C10-循环-10. 求序列前N项和 * Created on: 2014年7月30日 * Author: Boomkeeper *******部分通过******* */ ...
- 在 Inno Setup 中实现倒数N秒后激活按钮
原文 http://restools.hanzify.org/article.asp?id=67 timectrl.dll 为一个 6.5 KB 的按钮激活时间控制插件. 引用来自 Example1 ...
- Java魔法堂:打包知识点之META-INF/MAINFEST.MF(转)
一.前言 通过执行形如 jar -cvf src.jar src 命令将多个.class文件打包成JAR包时,你会发现JAR包中除了src目录外还多了个MATE-INF/MAINFEST.MF,那是为 ...
- Search in Rotated Sorted Array I II
Search in Rotated Sorted Array Suppose a sorted array is rotated at some pivot unknown to you before ...
- poj 1065 Wooden Sticks_贪心
题意:将木棍放在机器里处理,第一根需要一分钟,剩余的如果大于等于前边放入的长度和重量,就不用费时间,否则需要一分钟,计算给出一组数的最少时间. 思路:先按长度排序,相同在比较重量,然后按顺序比较得出结 ...
- ios中block中的探究
http://blog.csdn.net/jasonblog/article/details/7756763