目录
示例:太极旋转
动画(animation):是CSS3中具有颠覆性的特征之一,可通过设置多个结点来精确控制一个或一组动画,用来实现复杂的动画效果。
定义动画:
使用/调用动画:
用keyframes定义动画:
- <style>
- @keyframes move{
- 0%{
- transform: translate(0px);
- }
- 100%{
- transform: translate(100px);
- }
- .div1{
- animation-name:move;/*需要执行的动画的名字*/
- animation-duration: 3s;/*所需要的时间*/
- animation-iteration-count: infinite;/* 执行次数*/
- }
- </style>

1.可以做多个状态的变化
2.里面的百分比必须是整数
3.里面的百分比就是总的时间的划分
根据百分比状态确定实现什么动画:
- @keyframes move{
- 0%{
- transform: translate(0px,0px);
- }
- 25%{
- transform: translate(100px,0px);
- }
- 50%{
- transform: translate(100px,100px);
- }
- 75%{
- transform: translate(0px,100px);
- }
- 100%{
- transform: translate(0,0);
- }
- }
| none | 定义不进行转换。 |
| matrix(n,n,n,n,n,n) | 定义 2D 转换,使用六个值的矩阵。 |
| matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) | 定义 3D 转换,使用 16 个值的 4x4 矩阵。 |
| translate(x,y) | 定义 2D 转换。 |
| translate3d(x,y,z) | 定义 3D 转换。 |
| translateX(x) | 定义转换,只是用 X 轴的值。 |
| translateY(y) | 定义转换,只是用 Y 轴的值。 |
| translateZ(z) | 定义 3D 转换,只是用 Z 轴的值。 |
| scale(x,y) | 定义 2D 缩放转换。 |
| scale3d(x,y,z) | 定义 3D 缩放转换。 |
| scaleX(x) | 通过设置 X 轴的值来定义缩放转换。 |
| scaleY(y) | 通过设置 Y 轴的值来定义缩放转换。 |
| scaleZ(z) | 通过设置 Z 轴的值来定义 3D 缩放转换。 |
| rotate(angle) | 定义 2D 旋转,在参数中规定角度。 |
| rotate3d(x,y,z,angle) | 定义 3D 旋转。 |
| rotateX(angle) | 定义沿着 X 轴的 3D 旋转。 |
| rotateY(angle) | 定义沿着 Y 轴的 3D 旋转。 |
| rotateZ(angle) | 定义沿着 Z 轴的 3D 旋转。 |
| skew(x-angle,y-angle) | 定义沿着 X 和 Y 轴的 2D 倾斜转换。 |
| skewX(angle) | 定义沿着 X 轴的 2D 倾斜转换。 |
| skewY(angle) | 定义沿着 Y 轴的 2D 倾斜转换。 |
| perspective(n) | 为 3D 转换元素定义透视视图。 |
动画简写属性:
animation:动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 动画起始或者结束的状态;
示例:
- html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Documenttitle>
- <style>
- @keyframes move {
- from{
- transform: rotate(0deg);
- }
- to{
- transform:rotate(360deg);
-
- }
- }
- body {
- background-color: #adadad;/*设置背景色*/
- }
- div{
- animation-duration:0.1ms;
- animation-name: move;
- animation-iteration-count: infinite;
- animation-timing-function: linear;
- }
- #yinyang {
- width: 200px;
- height: 200px;
- border-radius: 50%;
- background: linear-gradient(
- to bottom,
- #ffffff 0%,
- #ffffff 50%,
- #000000 50%,
- #000000 100%
- );
- position: relative;
- margin: 100px auto;
- }
-
- #yinyang::before {
- position: absolute;
- content: "";
- width: 20px;
- height: 20px;
- border-radius: 50%;
- border: 40px solid black;/*左侧黑球套白点*/
- background-color: white;
- left: 0;
- top: 50px;
- }
-
- #yinyang::after {
- position: absolute;
- content: "";
- width: 20px;
- height: 20px;
- border-radius: 50%;
- border: 40px solid white;/*右侧白球套黑点*/
- background-color: black;
- right: 0;
- top: 50px;
- }
- style>
- head>
- <body>
- <div id="yinyang">div>
- body>
- html>
