CSS动画

Posted akangwx0624

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSS动画相关的知识,希望对你有一定的参考价值。

 

 

动画
一、过渡

通过 CSS3,我们可以在不使用 Flash 动画或 javascript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果。
transition:过渡
CSS3 过渡是元素从一种样式逐渐改变为另一种的效果。
要实现这一点,必须规定两项内容:

  - 规定您希望把效果添加到哪个 CSS 属性上
  - 规定效果的时长
示例:

技术图片
.main
position: absolute;
left: 0;
top: 0;
transition: opacity 4s; /*透明度的过度时间为4秒*/

.main:hover
opacity: 0; /*鼠标移入时的图片透明度为0*/
技术图片

注释:如果时长未规定,则不会有过渡效果,因为默认值是 0。
效果开始于指定的 CSS属性改变值时。CSS属性改变的典型时间是鼠标指针位于元素上时:

transition 属性是一个简写属性,用于设置四个过渡属性:

1、 transition-property :规定设置过渡效果的css属性的名称
  默认值为all,所有属性都将获得过渡效果,一般也只用这个。

2、transition-duration :规定完成过渡效果需要多少秒或毫秒。
  时间,默认值为0
3、transition-timing-function :规定速度效果的速度曲线。
  默认值为ease
  其他取值:
    ease:规定慢速开始,然后变快,然后慢速结束的过渡效果
    ease-in:规定以慢速开始的过渡效果
    ease-out:规定以慢速结束的过渡效果
    ease-in-out:规定以慢速开始和结束的过渡效果
    linear :规定以相同速度开始至结束的过渡效果
4、transition-delay :定义过渡效果何时开始。
  默认值为0

二、动画

CSS3 @keyframes 规则
@keyframes 规则用于创建动画。在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果。

当您在 @keyframes 中创建动画时,请把它捆绑到某个选择器,否则不会产生动画效果。

通过规定至少以下两项 CSS3 动画属性,即可将动画绑定到选择器:

  - 规定动画的名称
  - 规定动画的时长

技术图片
@keyframes mylast
0% background: red;left: 0;top:0;
25%background: green;left: 300px;top: 0;
50%background: yellow;left: 300px;top: 300px;
75%background:black;left: 0;top: 300px; 
100%background: orange;left: 0;top: 0;


.test
width: 100px;
height: 100px;
background: gray;
position: relative;
animation: mylast 1s infinite 0.1s alternate;
技术图片

 


@keyframes 用来创建动画名称
animation 用在元素上来应用创建的名称

animation 属性是一个简写属性,用于设置六个动画属性:

1、 animation-name :规定需要绑定到选择器的 keyframe 名称。。

2、 animation-duration :规定完成动画所花费的时间,以秒或毫秒计。

3、 animation-timing-function :规定动画的速度曲线。
  linear 动画从头到尾的速度是相同的
  ease 默认。动画以低速开始,然后加快,在结束前变慢。
  ease-in 动画以低速开始。
  ease-out 动画以低速结束。
  ease-in-out 动画以低速开始和结束。
4、 animation-delay : 规定在动画开始之前的延迟。

5、 animation-iteration-count :规定动画应该播放的次数。
  数值:
    infinite:规定动画应该无限次播放。
6、 animation-direction :规定是否应该轮流反向播放动画。
   normal:默认值。动画应该正常播放。
   alternate :动画应该轮流反向播放。

示例

技术图片
@keyframes myfirst 
0% background:red; left:0px; top:0px;
25% background:yellow; left:200px; top:0px;
50% background:blue; left:200px; top:200px;
75% background:green; left:0px; top:200px;
100% background:red; left:0px; top:0px;


div 
width:100px;
height:100px;
background:red;
position:relative;
/* 规定需要绑定到选择器的keyframe名称 */
animation-name:myfirst;
/* 规定动画所花费的时间以秒或毫秒 */
animation-duration:5s;
/* 规定动画的速度曲线 */
animation-timing-function:linear;
/* 规定动画开始之前的延迟 */
animation-delay:2s;
/* 规定动画要播放的次数 */
animation-iteration-count:infinite;
/* 规定是否应该轮流方向播放动画 */
animation-direction:alternate;

技术图片

三、2D转换

2D转换方法
translate()
rotate()
scale()
skew()
matrix()

1、translate() 方法
通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) 位置参数
示例:

transform: translate(50px,100px);
把元素从左侧移动 50 像素,从顶端移动 100 像素。

 


2、rotate() 方法
通过 rotate() 方法,元素顺时针旋转给定的角度。允许负值,元素将逆时针旋转。
示例:

transform: rotate(30deg);
把元素顺时针旋转 30 度。

 


3、scale() 方法
通过 scale() 方法,元素的尺寸会增加或减少,根据给定的宽度(X 轴)和高度(Y 轴)参数:
示例:
```
值 scale(2,4) 把宽度转换为原始尺寸的 2 倍,把高度转换为原始高度的 4 倍。
```
4、skew() 方法
通过 skew() 方法,元素翻转给定的角度,根据给定的水平线(X 轴)和垂直线(Y 轴)参数:
示例:

transform: skew(30deg,20deg);
值 skew(30deg,20deg) 围绕 X 轴把元素翻转 30 度,围绕 Y 轴翻转 20 度。

 

CSS3 transform-origin 属性
transform-origin :设置旋转元素的基点位置
示例:

div

transform: rotate(45deg);
transform-origin:20% 40%;

 

语法:transform-origin: x-axis y-axis z-axis;
1、x-axis:
  定义视图被置于 X 轴的何处。可能的值:
    eft
    center
    right
    length
    %
2、y-axis
  定义视图被置于 Y 轴的何处。可能的值:

    top
    center
    bottom
    length
    %
3、z-axis
  定义视图被置于 Z 轴的何处。可能的值:

    length

四、3D转换
3D转换方法
1、rotateX()

通过 rotateX() 方法,元素围绕其 X 轴以给定的度数进行旋转。

 

2、rotateY()
rotateY() 旋转
通过 rotateY() 方法,元素围绕其 Y 轴以给定的度数进行旋转。

perspective(n) 定义 3D 转换元素的透视视图。

perspective 属性定义 3D 元素距视图的距离,以像素计。该属性允许您改变 3D 元素查看 3D 元素的视图。

当为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身。

注释:perspective 属性只影响 3D 转换元素。

值:
number 元素距离视图的距离,以像素计。
none 默认值。与 0 相同。不设置透视。

以上是关于CSS动画的主要内容,如果未能解决你的问题,请参考以下文章

如何触发css3过渡动画

css3动画使用

点击播放 css3 动画

如何使用js捕获css3动画

css动画集锦

CSS如何实现动画?