其实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. (第三场) A PACM Team 【dp,五维背包】

    链接:https://www.nowcoder.com/acm/contest/141/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  2. IDE设置jdk和maven

    File->settings->Project Structure-ProjectFile->settings->Build,Execution,Deployment-> ...

  3. 使用canvas上传图片+上传进度

    实现效果: 速度过快,调式浏览器方式:F12 后台java代码 public String imageshangchuan(@RequestPart("xxx") Multipar ...

  4. File,FileInfo,Directory,DirectoryInfo

    两者的共同点:  一:都用于典型的操作,如复制.移动.重命名.创建.打开.删除和追加到文件   二:默认情况下,将向所有用户授予对新文件的完全读/写访问权限.  两者的区别:   File类是静态类, ...

  5. Python程序的执行原理(转)

    1. 过程概述 Python先把代码(.py文件)编译成字节码,交给字节码虚拟机,然后虚拟机一条一条执行字节码指令,从而完成程序的执行. 2. 字节码 字节码在Python虚拟机程序里对应的是PyCo ...

  6. requireJs sass侧边栏

    koala 下载 将sass编译为css文件 1 嵌套 2 $变量 3 @mixin 函数名(参数) 4 @include 函数    调用 5 @import "xxx"   引 ...

  7. php中的变量作用域

    <?php include_once $_SERVER['DOCUMENT_ROOT'].'/includes/db.inc.php'; function totalJokes() { try{ ...

  8. 用HTML写伪类选择器,结构伪类选择器,伪元素选择器样式

    html,css lorem乱序铭文 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nesciunt, nihil? Lorem ...

  9. 8.Element-ui日期组件上传到后台日期少一天解决办法

    <el-date-picker type="date" value-format="yyyy-MM-dd" placeholder="转出日期& ...

  10. Python 学习笔记(四)数字(二)

    Python Python2 中除法的问题 >>> 3 / 6 0 >>> 3.0 / 6 0.5 >>> 3.0 / 6.0 0.5 >& ...