美文网首页
CSS3动画

CSS3动画

作者: playman | 来源:发表于2018-06-24 21:46 被阅读0次

CSS3之2D/3D动画

2D的变换

3D的变换

动画

2D动画的变换

基本说明

方法名称 作用
translate() 移动元素
rotate() 旋转元素
scale() 缩放元素
skew() 倾斜元素
matrix() 利用公式改变元素

注意:一般要写不同浏览器的适配

transform: ;
-ms-transform: ; /* IE 9 */
-webkit-transform: ; /* Safari and Chrome */
transform-origin:20% 40%; 变换的源点设定

移动位置

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>2d_01</title>
        <style type="text/css">
            .div1,
            .div2 {
                width: 100px;
                height: 100px;
                background: skyblue;
                margin: 0px auto;
                border: 1px solid black;
            }

            .div2 {
                transform: translate(200px);
            }
        </style>
    </head>
    <body>
        <div class="div1">
            初始位置
        </div>
        <div class="div2">
            移动的位置
        </div>
    </body>
</html>
效果

缩放

注意

scaleX() 缩放X轴
scaleY() 缩放Y轴
scale() 里面一个参数是X/Y缩放相同,两个参数,第一个是X轴的,第二个是Y轴的

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>缩放</title>
        <style type="text/css">
            .div1,
            .div2 {
                width: 100px;
                height: 100px;
                margin-left: 200px;
                margin-top: 200px;
                border: 1px solid black;
                background-color: skyblue;
                float: left;
            }

            .div2 {
                transform: scale(1.5);
            }
        </style>
    </head>

    <body>
        <div class="div1">
            原來大小
        </div>
        <div class="div2">
            现在大小
        </div>
    </body>

</html>
缩放效果

旋转

注意:

transform: rotate(45deg); 绕顺时针旋转
transform: rotateX(45deg); 绕X轴旋转
transform: rotateY(45deg); 绕Y轴旋转
transform: rotateZ(45deg); 绕Z轴旋转

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>旋转</title>
        <style type="text/css">
            .div1,
            .div2{
                width: 100px;
                height: 100px;
                margin: 200px 200px;
                margin: 100px;
                float: left;
                border: 1px solid black;
                background-color: skyblue;
            }
            .div2{
                transform: rotate(45deg);
            }
        </style>
    </head>
    <body>
        <div class="div1">
            初始状态
        </div>
        <div class="div2">
            旋转之后的状态
        </div>
    </body>
</html>
旋转

倾斜

注意:

transform: skew(45deg); 倾斜的角度,逆时针
transform: skewX(45deg); X轴倾斜
transform: skewY(45deg); Y轴倾斜

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>倾斜</title>
        <style type="text/css">
            .div1,
            .div2{
                width: 100px;
                height: 100px;
                border: 1px solid black;
                background-color: skyblue;
                margin: 100px 100px;
                float: left;
            }
            .div2{
                transform: skew(45deg);
            }
        </style>
    </head>
    <body>
        <div class="div1">
            初始状态
        </div>
        <div class="div2">
            变换状态
        </div>
    </body>
</html>
倾斜

公式变化matrix()

matrix()里面需要填6个参数,是一个矩阵的算法

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>公式变换</title>
        <style type="text/css">
            .div1,
            .div2{
                width: 100px;
                height: 100px;
                border: 1px solid black;
                background-color: skyblue;
                margin: 100px 100px;
                float: left;
            }
            .div2{
                transform:matrix(0.866,0.5,-0.5,0.866,0,0);
            }
        </style>
    </head>
    <body>
        <div class="div1">
            初始状态
        </div>
        <div class="div2">
            变换状态
        </div>
    </body>
</html>

公式变化

可以实现的效果


照片墙

3D动画的变换

基本属性、方法说明

属性 参数 描述
transform 方法 元素的转换方式
transform-origin X,Y 从那个位置开始转换
transform-style - flat
preserve-3d
表示所有子元素在2D平面呈现。
表示所有子元素在3D空间中呈现。
perspective number
none
元素距离视图的距离,像素单位
默认值
perspective-origin x-axis
y-axis
<li>默认值50%<li>left<li>center<li>right<li>length<li>%
<li>默认值50%<li>top<li>center<li>bottom<li>length<li>%
设置一个3D元素的基数位置
backface-visibility visible
hidden
背面是可见的
背面是不可见的

3D转换方法,与2D使用类似

函数 描述
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 定义 3D 转换,使用 16 个值的 4x4 矩阵。
translate3d(x,y,z) 定义 3D 转化。
translateX(x) 定义 3D 转化,仅使用用于 X 轴的值。
translateY(y) 定义 3D 转化,仅使用用于 Y 轴的值。
translateZ(z) 定义 3D 转化,仅使用用于 Z 轴的值。
scale3d(x,y,z) 定义 3D 缩放转换。
scaleX(x) 定义 3D 缩放转换,通过给定一个 X 轴的值。
scaleY(y) 定义 3D 缩放转换,通过给定一个 Y 轴的值。
scaleZ(z) 定义 3D 缩放转换,通过给定一个 Z 轴的值。
rotate3d(x,y,z,angle) 定义 3D 旋转。
rotateX(angle) 定义沿 X 轴的 3D 旋转。
rotateY(angle) 定义沿 Y 轴的 3D 旋转。
rotateZ(angle) 定义沿 Z 轴的 3D 旋转。
perspective(n) 定义 3D 转换元素的透视视图。

动画

普通动画效果

设置transition属性

transition: all 2s linear;

第一个参数:要改变的值,要是全部都可以变就用all
第二个参数:是此变化需要多少时间完成
第三个参数:以什么样的节奏变化,线性还是慢进快出等样式

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            .div1{
                width: 100px;
                height: 100px;
                background-color: skyblue;
                transition: all 2s linear;
            }

        </style>
    </head>
    <body>
        <div class="div1">

        </div>
    </body>
</html>

效果

帧动画效果

关键的代码成为

第一个参数:关键帧的名字
第二个参数:持续时间
第三个参数:重复的次数或是样式

animation:myfirst 5s 2;

from:初始状态
from:结束状态

from和to也可以写成10%{}样式,精确到某个阶段

@keyframes myfirst{
    from{

    }
    to{
        margin-left: 200px;
        margin-top: 200px;
    }
}
效果

属性表

属性 描述
@keyframes 名称
持续时间百分比
CSS样式
必须
<li>0-100%<li>from<li>to
CSS属性
animation name
duration
timing-function
delay
iteration-count
direction
fill-mode
play-state
关键帧名称
时间
一个周期样式
延迟
次数
是否反向播放
不播放时的样式
是否运行
animation-name 关键帧名称 关键帧名称
animation-duration 延迟时间 默认值为 0,意味着没有动画效果
animation-timing-function linear
ease
ease-in
ease-out
ease-in-out
cubic-bezier(n,n,n,n)
匀速
低速开始,然后加快,在结束前变慢
动画以低速开始
动画以低速结束
动画以低速开始和结束
在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值
animation-delay time 延迟时间
animation-iteration-count n
infinite
规定次数
无限次
animation-direction normal
reverse
alternate
alternate-reverse
initial
inherit
默认值。动画按正常播放。
动画反向播放。
动画在奇数次(1、3、5...)正向播放,在偶数次(2、4、6...)反向播放。
动画在奇数次(1、3、5...)反向播放,在偶数次(2、4、6...)正向播放。
设置该属性为它的默认值
从父元素继承该属性
animation-play-state paused
running
指定暂停动画
指定正在运行的动画

相关文章

  • 网页高级知识点(三)

    CSS3 transition动画 CSS3 transform变换 CSS3 animation动画

  • 07day

    CSS3动画 CSS3 @keyframes 规则如需在 CSS3 中创建动画,您需要学习 @keyframes ...

  • 08_dayCSS动画

    CSS3新增的功能有:过渡和动画,阴影和圆角 css3过渡动画: css3都有哪些新增的东西 : 过度,动画,阴影...

  • CSS3 动画

    CSS3 动画CSS3,我们可以创建动画,它可以取代许多网页动画图像,Flash动画,和JAVAScripts。 ...

  • CSS3 动画

    动画属性 动画(animation)是CSS3新增的属性,动画属性可以为元素创建动画,CSS3以前在网页上实现动画...

  • css3动画

    css3动画 CSS3 可以创建动画,它可以取代许多网页动画图像、Flash 动画和 JavaScript 实现的...

  • 纯CSS3绘制的逼真,呆萌,超酷的CSS3动画

    纯CSS3人物行走动画 逼真炫酷CSS3动画 CSS3实在是太强大了,今天分享的CSS3动画非常神奇,它可以模拟人...

  • 关于js动画和css3动画的差异性你了解吗?请简单谈一下

    css3动画:css3之后添加了transform动画计算函数,所以实现动画更为简单方便,并且transform矩...

  • 过度动画

    css3过度动画 css3都有哪些新增的东西 : 过度,动画,阴影,圆角; transition : width ...

  • 动画知识点

    css3过度动画 css3都有哪些新增的东西 : 过度,动画,阴影,圆角; transition : width ...

网友评论

      本文标题:CSS3动画

      本文链接:https://www.haomeiwen.com/subject/rnwsyftx.html