其实css3动画是就是2种实现,一种是transition,另一种就是animation。transition实现的话就是只能定制开始帧,和结束2帧;而animation实现的话可以写很多关键帧。
没有前戏,直进主题。

transition

包含4个值,例如:-webkit-transition:all .5s ease 1s;
 分别顺序是(m代表必须): 变换的属性(m)、变换过渡的时间(m)、变换的速率、变换延时执行的时间。
来个小demo:

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<style>
.transition {
width:30px;
height: 30px;
line-height: 30px;
border-radius: 50%;
text-align: center;
display: inline-block;
background:lightblue;
-webkit-transition:all .5s ease;
transition:all .5s ease;
color:#fff;
}
.transition:hover {
-webkit-transform:rotate(360deg);
transform:rotate(360deg);
}
</style>
</head>
<body>
<div class="transition">×</div>
</body>
</html>

应用例子:
http://skyweaver213.github.io/slide/widget/slide2/slide.html
http://skyweaver213.github.io/slide/widget/slide3/slide.html

animation:

就是一个动画对应一个keyframes,然后一个keyframes 里可以有N多个关键帧。
例如一个keyframes里我们可以这样写:

@-webkit-keyframes go {
0%, 100% {
-webkit-transform: translateX(0);
}
50% {
-webkit-transform: translateX(500px);
}
}

然后我们需要在应用这个keyframes的元素上写一个animation,
例如:-webkit-animation:go 2.5s ease infinite 0;  
参数顺序分别是(m代表必须):动画名字(m)、执行的时间(m)、过渡的速率、执行多小次、延迟执行的时间

小demo:

<!DOCTYPE html>
<html>
<head>
<title></title>
<style>
.animation {
width: 100px;
height: 100px;
display: block;
background: pink;
-webkit-animation: go 2.5s infinite;
/*-webkit-animation: go 2.5s cubic-bezier(.25, -0.25, .75, 1.25) infinite;*/
} @-webkit-keyframes go {
0%, 100% {
-webkit-transform: translateX(0);
}
50% {
-webkit-transform: translateX(500px);
}
}
</style>
</head>
<body> <div class="animation"></div> </body>
</html>

应用deom:loading状态、三条线变箭头。
http://skyweaver213.github.io/slide/widget/slide1/slide.html

<!DOCTYPE html>
<html>
<head>
<title></title>
<style>
.loading {
position: relative;
width: 40px;
height: 40px;
margin: 40px auto;
-webkit-transform:rotate(165deg);
}
.loading:before, .loading:after {
content: '';
position: absolute;
width: 8px;
height: 8px;
top: 50%;
left: 50%;
display: inline-block;
border-radius: 4px;
-webkit-transform: translate(-50%, -50%);
}
.loading:before {
-webkit-animation:before 2s infinite;
}
.loading:after {
-webkit-animation:after 2s infinite;
} @-webkit-keyframes before {
0% {
width: 8px;
box-shadow: 16px -8px rgba(225, 20, 98, 0.75), -16px 8px rgba(111, 202, 220, 0.75);
} 35% {
width: 40px;
box-shadow: 0 -8px rgba(225, 20, 98, 0.75), 0 8px rgba(111, 202, 220, 0.75);
} 70% {
width: 8px;
box-shadow: -16px -8px rgba(225, 20, 98, 0.75), 16px 8px rgba(111, 202, 220, 0.75);
} 100% {
box-shadow: 16px -8px rgba(225, 20, 98, 0.75), -16px 8px rgba(111, 202, 220, 0.75);
}
} @-webkit-keyframes after {
0% {
height: 8px;
box-shadow: 8px 16px rgba(61, 184, 143, 0.75), -8px -16px rgba(233, 169, 32, 0.75);
} 35% {
height: 40px;
box-shadow:8px 0 rgba(61, 184, 143, 0.75),-8px 0 rgba(233, 169, 32, 0.75);
} 70% {
height: 8px;
box-shadow: 8px -16px rgba(61, 184, 143, 0.75), -8px 16px rgba(233, 169, 32, 0.75);
} 100% {
box-shadow: 8px 16px rgba(61, 184, 143, 0.75), -8px -16px rgba(233, 169, 32, 0.75);
}
} </style>
</head>
<body>
<div class="loading"></div>
</body>
</html>

变换成箭头:

<!DOCTYPE html>
<html>
<head>
<title></title>
<style>
* {
margin:0;
padding:0;
}
.arrow_div {
width: 100px;
height: 100px;
background: #000;
position: relative;
}
.arrow {
width: 33px;
height: 4px;
display: inline-block;
background: #fff;
position: absolute;
left:0;
right:0;
} .arrow_body {
margin: auto;
top:40px;
-webkit-animation: 2s linear body_kf infinite;
} @-webkit-keyframes body_kf {
0% { }
30%, 50% {
-webkit-transform: rotate(180deg);
}
80%, 100% {
-webkit-transform: rotate(360deg);
} } .sleft {
width: 33px;
height: 33px;
border: transparent;
position: absolute;
top: 25px;
margin: 0 auto;
left: 0;
right: 0;
-webkit-animation: 2s linear sleft_kf infinite;
}
.sleft:before {
content: '';
width: 33px;
height: 4px;
display: inline-block;
background: #fff;
top: 0;
position: absolute;
-webkit-animation: 2s linear sleft_before_kf infinite;
}
@-webkit-keyframes sleft_kf {
0% {}
30%, 50% {
-webkit-transform: rotate(222deg);
}
80%,100% {
-webkit-transform: rotate(360deg);
}
}
@-webkit-keyframes sleft_before_kf {
0%, 100%{}
20% {
width: 28px;
top: 1px;
left: 3px;
}
25% {
width: 26px;
top: 2px;
left: 6px;
}
30%, 40%, 50% {
width: 22px;
top: 3px;
left: 8px;
}
80% {
width: 33px;
top:0;
left:0;
}
}
.sright {
width: 33px;
height: 33px;
border: transparent;
position: absolute;
margin: 0 auto;
left: 0;
right: 0;
top: 25px;
position: absolute;
-webkit-animation: 2s linear sright_kf infinite; } .sright:before {
content: '';
width: 33px;
height: 4px;
display: inline-block;
background: #fff;
bottom: 0;
position: absolute;
-webkit-animation: 2s linear sright_before_kf infinite;
}
@-webkit-keyframes sright_kf {
0% {}
30%, 50% {
-webkit-transform: rotate(135deg);
}
80%,100% {
-webkit-transform: rotate(360deg);
}
}
@-webkit-keyframes sright_before_kf {
0%,100% {}
20% {
width: 28px;
bottom: 1px;
right: 1px;
}
25% {
width: 25px;
bottom: 2px;
right: 2px;
}
30%, 40%, 50% {
width: 22px;
bottom: 3px;
right: 3px;
} 80% {
width: 33px;
bottom: 0;
right:0;
}
} </style>
</head>
<body>
<div class="arrow_div">
<div class="sleft"></div>
<i class="arrow arrow_body"></i>
<div class="sright"></div>
</div>
</body>
</html>

30分钟玩转css3动画, transition,animation的更多相关文章

  1. css3动画transition animation

    CSS动画简介  transition   animation transition过渡:css3通过transitions属性引入时间概念,通过开始.结束状态自动计算中间状态,实现状态改变的过渡效果 ...

  2. CSS动画-transition/animation

    HTML系列: 人人都懂的HTML基础知识-HTML教程(1) HTML元素大全(1) HTML元素大全(2)-表单 CSS系列: CSS基础知识筑基 常用CSS样式属性 CSS选择器大全48式 CS ...

  3. CSS3动画属性animation的用法

    转载: 赞生博客 高端订制web开发工作组 » CSS3动画属性animation的用法 CSS3提供了一个令人心动的动画属性:animation,尽管利用animation做出来的动画没有flash ...

  4. 学习笔记之Linux Shell脚本教程:30分钟玩转Shell脚本编程

    Linux Shell脚本教程:30分钟玩转Shell脚本编程 http://c.biancheng.net/cpp/shell/

  5. CSS3动画以及animation事件

    1.CSS3动画以及animation事件的定义 animation :name duration timing-function delay iteration-count direction an ...

  6. CSS3(transform/transition/animation) 基础 总结

    1.CSS3新增的样式(常用) //颜色透明表示rgba(0,0,0,.5) //圆角(定义角半径)border-radius: 5px 10px 15px 20px; //文字/盒子阴影text-s ...

  7. 学习CSS3动画(animation)

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

  8. css3 tranform  transition animation

    tranform:对象图形变形 tranform的属性包括:   1.none 表示不进行变换:   2.rotate 旋转            transform:rotate(20deg) 旋转 ...

  9. CSS3 动画实现 animation 和 transition 比较

    在 CSS3 中有两种方式实现动画, 分别是 animation 和 transition, 他们都有以下功能 根据特定 CSS 属性进行动画 设定属性变化的 timing function 设定动画 ...

随机推荐

  1. Black Rock Shooter 题解

    题目描述 在人气动漫 Black Rock shooter 中,当加贺里对麻陶 说出了“滚回去“以后,与此同时,在另一个心灵世界里, BRS 也遭到了敌人的攻击.此时,一共有 n 个攻击排成一行 朝着 ...

  2. css布局-响应式布局

    响应式设计 .在不同设备上正常使用 .一般主要处理屏幕大小问题 .主要方法: .隐藏 + 折行 + 自适应空间 .rem/viewport/media query 第一个案例 <!DOCTYPE ...

  3. 【洛谷P3834】(模板)可持久化线段树 1(主席树)

    [模板]可持久化线段树 1(主席树) https://www.luogu.org/problemnew/show/P3834 主席树支持历史查询,空间复杂度为O(nlogn),需要动态开点 本题用一个 ...

  4. select 获取选中option的值方法,选中option方法

    options=$("#Select option:selected"); options.attr('name');options.val(); options.text(); ...

  5. 每天一个Linux命令(6):rmdir命令

    rmdir命令用来删除空目录 注意:子目录被删除之前应该是空目录.就是说,该目录中的所有文件必须用rm命令全部,另外,当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录 ...

  6. iptables防火墙常用命令参数

    iptable添加一条规则开放22端口 iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp --sport ...

  7. 判断js中数据类型 的最短代码

    判断字符串类型的: function isString(obj) { return obj+"" === obj; } 判断bool类型的: function isBool(obj ...

  8. MySql Connector/C++8事务处理Demo

    #include <iostream> #include <exception> #include <vector> #include <unistd.h&g ...

  9. VMware ESXi-6.7——安装

    前提条件: 下载ESXi-ISO镜像文件 制作启动文件 将服务器调试为U盘启动 进入U盘启动模式 1. 进入ESXi的安装页面 选择要安装的磁盘 选择USB口驱动 设置一个root密码 保存数据提示 ...

  10. mysql系列一

    学习mysql必备工具即安装mysql客户端:mysql安装教程在网上有很多,在此处就不在仔细说明: 下面将仔细介绍一下关于SQL语句: SQL语句:结构化查询语言(Structured Query ...