在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动画效果的更多相关文章

  1. animate.css 一些常用的CSS3动画效果

    大家已经开始在项目中使用一些CSS3动画效果了吧,这让网站在高端浏览器上看起来很上流.animate.css是一个老外做的各种CSS3动画的合集,比较全,也很炫,大家可以参考学习一下. 项目主页:ht ...

  2. CSS基础学习-15.CSS3 动画效果

  3. CSS Animatie是一款在线制作CSS3动画的工具,可以在线直接制作CSS3动画效果,生成代码

    CSS Animatie是一款在线制作CSS3动画的工具,可以在线直接制作CSS3动画效果,生成代码 CSS Animatie 彩蛋爆料直击现场 CSS Animatie是一款在线制作CSS3动画的工 ...

  4. CSS3动画效果——js调用css动画属性并回调处理详解

    http://www.jb51.net/css/258407.html 这篇文章主要详细介绍了CSS3动画效果回调处理,需要的朋友可以参考下 我们在做js动画的时候,很多时候都需要做回调处理,如在一个 ...

  5. 鼠标悬停css3动画效果

    下载Demo 效果预览 html: <!DOCTYPE html> <html lang="en"> <head> <meta chars ...

  6. Bounce.js – 快速创建漂亮的 CSS3 动画效果

    Bounce.js 是一个用于制作漂亮的 CSS3 关键帧动画的 JavaScript 库,使用其特有的方式生成的动画效果.只需添加一个组件,选择预设,然后你就可以得到一个短网址或者导出为 CSS 代 ...

  7. 第八十三节,CSS3动画效果

    CSS3动画效果 学习要点: 1.动画简介 2.属性详解 3.简写和版本 本章主要探讨HTML5中CSS3的动画效果,可以通过类 Flash那样的关键帧模式控制运行. 一.动画简介     CSS3提 ...

  8. !!学习笔记:CSS3动画

    一句话就有css3动画: 2016-6-29 <style type="text/css"> h1{background:#999;} h1:hover{border- ...

  9. 35个让人惊讶的CSS3动画效果

    1. Pure CSS Coke Can 2. Colorful Clock 3. jQuery DJ Hero 4. Animated Pricing Column 5. Slick jQuery  ...

  10. Css3动画效果,彩色文字效果,超简单的loveHeart

    <!DOCTYPE html><html><head><meta charset="utf-8" /><title>Cs ...

随机推荐

  1. [原创]Windows下Google V8 javascript引擎编译

    项目用到将v8嵌入到C++的情况,公司没时间研究,只有在家研究,编译过程一堆坑.记录一下. 网上百度的都是基于vs2010,或者早版本的v8编译,最新版本应该使用vs2013\vs2015.本文介绍的 ...

  2. Ubuntu安装中文字体

    Ubuntu没有宋体,楷体之类的中文字体,在Libreoffice中打不出中文,-_-! 我们可以从windows中借点字体过来,哈哈. 一.准备字体 从windows7中拷贝出字体文件,拷贝的目录为 ...

  3. zz[C++]合理的设计和使用消息队列

    http://www.cnblogs.com/egmkang/archive/2012/11/17/2763295.html 生产者消费者问题,是永远的经典. 单纯让多个线程去竞争,占有资源然后处理, ...

  4. JQ----树杈型导航

    简单的做了一个树杈型的导航结构如下所示: 废话不多说,上代码: HTML: <div class="wrapper"> <div class="tabt ...

  5. hasClass方法 动画方法说明

    $(this).hasClass("selected");判断是否含有selected样式

  6. Building Android Apps 30条建议

    Building Android Apps — 30 things that experience made me learn the hard way There are two kinds of ...

  7. [Linux Kernel]查看CentOS版本方法

    查看CentOS版本方法  有以下命令可以查看:   # lsb_release -a LSB Version:    :core-3.1-ia32:core-3.1-noarch:graphics- ...

  8. 怎么查看mysql执行过的sql。

    有些时候当程序做了更新,数据库负载突然上来,或者并发翻了几倍.这个时候如果用show full processlist; 根本看不到完全的sql.怎么才能看是哪些sql导致的呢,在网上查了资料,有一下 ...

  9. API例子:用Java/JavaScript下载内容提取器

    1,引言 本文讲解怎样用Java和JavaScript使用 GooSeeker API 接口下载内容提取器,这是一个示例程序.什么是内容提取器?为什么用这种方式?源自Python即时网络爬虫开源项目: ...

  10. 烧饼(nyoj779)

    描述烧饼有两面,要做好一个兰州烧饼,要两面都弄热.当然,一次只能弄一个的话,效率就太低了.有这么一个大平底锅,一次可以同时放入k个兰州烧饼,一分钟能做好一面.而现在有n个兰州烧饼,至少需要多少分钟才能 ...