ホームページ > ウェブフロントエンド > フロントエンドQ&A > css3 の 3 つの主要なアニメーション プロパティとは何ですか?

css3 の 3 つの主要なアニメーション プロパティとは何ですか?

青灯夜游
リリース: 2021-12-16 14:56:36
オリジナル
3234 人が閲覧しました

css3 の 3 つの主要なアニメーション属性は次のとおりです: 1. トランジション属性は、要素のトランジション効果を設定するために使用されます; 2. トランスフォーム属性は、2D または 3D 変換 (回転、スケーリング、移動) を適用するために使用されます3. アニメーションを作成するには、アニメーション属性を「@keyframes」と一緒に使用する必要があります。

css3 の 3 つの主要なアニメーション プロパティとは何ですか?

このチュートリアルの動作環境: Windows 7 システム、CSS3&&HTML5 バージョン、Dell G3 コンピューター。

css3 アニメーション プロパティは、transform、transition、animation に分かれています。

1.transition(transition)

a:transition-property:检索或设置对象中的参与过渡的属性
b.transition-duration:检索或设置对象过渡的持续时间
c.transition-delay:检索或设置对象延迟过渡的时间
d.transition-timing-function:检索或设置对象中过渡的动画类型

简写:
		transition: 属性值1  属性值2  属性值3  属性值4
属性值1: 需要参与过渡属性   all  ( 能支持过渡属性的都会过渡变换  默认值)
属性值2: 过渡的时间   s秒   ms  毫秒
属性值3: 延迟的时间   s秒   ms  毫秒
属性值4: 动画的类型(匀速、匀加速、匀减速........)
ログイン後にコピー

例: transition :3s 2s Linear;

2.transform

2D

a.位移:transform:translate(参数1,参数2)
			参数1:在X轴移动的距离
            参数2:在Y轴移动的距离
            ps:参数如果是正值的情况下:往右往下   负值:往左往上
		单独设置X/Y的位移:
			transform:translateX(参数);
            transform:translateY(参数);
b.缩放:transform:scale(参数1,参数2);
			参数1:X轴缩放的比例 
            参数2:Y轴缩放的比例
            ps:参数小于1,缩小;参数大于1,放大。如果两参数相同,写一个就行
        单独设置X  Y
			transform:scaleX();
			transform:scaleY();
c.旋转:transform:rotate();
			默认情况下围绕中心点转动,转动的是度数,deg!
		单独设置围绕某个轴(X  Y)
			transform:rotateX()
			transform:rotateY()
d.倾斜:transform:skew();
		单独设置围绕某个轴(X  Y)
			transform:skewX()
			transform:skewY()


补充:如果有两个功能函数:先写位移 再写旋转。
ログイン後にコピー

別の回転例:

中心点 :

span{
            display: block;
            width: 300px;
            height: 150px;
            background: purple;
            transform: rotate(30deg);
        }
ログイン後にコピー

css3 の 3 つの主要なアニメーション プロパティとは何ですか?
X軸を中心に回転させる場合:

span{
            display: block;
            width: 300px;
            height: 150px;
            background: purple;
            transform: rotateX(30deg);
        }
ログイン後にコピー

css3 の 3 つの主要なアニメーション プロパティとは何ですか?
回転させると次のことがわかります。 X 軸を中心に、ボックスの上部が内側を指し、下部が外側を指します。

Y 軸周りの場合:

 span{
            display: block;
            width: 300px;
            height: 150px;
            background: purple;
            transform: rotateY(30deg);
        }
ログイン後にコピー

css3 の 3 つの主要なアニメーション プロパティとは何ですか?
画像の左側が外側になっていることがわかります。右側が外側、内側です。

3D

3D 空間のフォーム:transform-style:preserve-3d

a.位移:
	transform:translate(x,y,z);
            translateX()
            translateY()
            translateZ(不能是百分比)  
b.旋转:
	transform:rotate();
            rotateX()
            rotateY()
            rotateZ()  //默认情况效果类似
            rotate3D(x,y,z,a)   [ 0不旋转。1旋转 ]
                - x:是一个0到1之间的数值,主要用来描述元素围绕X轴旋转的矢量值;
                - y:是一个0到1之间的数值,主要用来描述元素围绕Y轴旋转的矢量值;
                - z:是一个0到1之间的数值,主要用来描述元素围绕Z轴旋转的矢量值;
                - a:是一个角度值,主要用来指定元素在3D空间旋转的角度,如果其值为正值,元素顺时针旋转,反之元素逆时针旋转。
ログイン後にコピー

3.animation

制定关键帧:
	@keyframes 关键帧的名称{
        from{}
        to{}
     或者
        0%{
        }
        50%{
        }
        100%{
        }
    }
调用关键帧
    animation:  复合属性
		animation-name   关键帧的名称
        animation-duration   动画的持续的时间
        animation-timing-function   动画运用的类型(匀速linear、加速度、减速度、贝塞尔曲线 step-start  //没有动画中间的过渡效果。每次直接跳到下一帧开始的地方)
        animation-delay  动画的延迟
        animation-iteration-count   动画运动的次数(默认情况下运动1次) infinite(无限循环)
        animation-direction  运动的方向
                属性值:
                    - reverse:反方向运行 ( 让关键帧从后往前执行 )
                    - alternate:动画先正常运行再反方向运行,并持续交替运行
                    - alternate-reverse:动画先反运行再正方向运行,并持续交替运行
        animation-play-state 
                属性值:
                    paused暂停
                    running运动
	常用的写法:
    		animation:关键帧的名称  动画运动的时间  linear(匀速)  动画延迟的时间
ログイン後にコピー

例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin:0;
            padding:0;
        }
        .box{
            width:300px;
            height:300px;
            position:fixed;
            left:0;right:0;
            top:0;bottom:0;
            margin:auto;
            /* 3D的空间 */
            transform-style: preserve-3d;
            /* 为了方便观察让3D舞台转动角度 */
            transform:rotateX(20deg) rotateY(30deg);
            transition:2s;
            animation: hh 2s linear infinite;
        }
        .box p{
            width:300px;
            height:300px;
            text-align: center;
            line-height:300px;
            font-size: 100px;
            font-weight:bolder;
            color:#fff;
            /* 让6个面全部定位在父元素里面 */
            position:absolute;
            left:0;top:0;
            /* 透明 */
            opacity:1;
            border:2px solid #000;

            /* 使背面不可见! */
            backface-visibility:hidden;
        }
        .con1{
            /* 第一个面往前走 */
            background:red;
            transform:translateZ(150px);
        }
        .con2{
            /* 第二个面往后走 */
            background:blue;
            transform:translateZ(-150px) rotateY(180deg); /*rotateY(180deg)  让正面朝外*/
        }
        .con3{
            /* 先往上位移150px  再绕着X轴转动90deg */
            background:pink;
            transform:translateY(-150px) rotateX(90deg);
        }
        .con4{
            /* 先往下位移150px,再绕着X轴转动90deg */
            background:green;
            transform:translateY(150px) rotateX(-90deg);
        }

        .con5{
            /* 先往左位移150px , 再绕着Y轴转动90deg */
            background:rosybrown;
            transform:translateX(-150px) rotateY(-90deg);
        }
        .con6{
            /* 先往右侧位移150px,再绕着Y轴转动90deg */
            background:#000;
            transform:translateX(150px) rotateY(90deg);
        }
        @keyframes hh{
            from{
                transform:rotateX(-20deg) rotateY(0deg) ;
            }
            to{
                transform:rotateX(340deg) rotateY(360deg) ;
            }
        }
    </style>
</head>
<body>
    <p class="box">
        <p class="con1">1</p>
        <p class="con2">2</p>
        <p class="con3">3</p>
        <p class="con4">4</p>
        <p class="con5">5</p>
        <p class="con6">6</p>
    </p>
</body>
</html>
ログイン後にコピー

(学習ビデオ共有: css ビデオ チュートリアル )

以上がcss3 の 3 つの主要なアニメーション プロパティとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート