搜尋
首頁web前端html教學CSS3的變形transform、轉場transition、動畫animation學習

學習CSS3動畫animation得先了解一些關於變形transform、過渡transition的知識

這些新屬性大多在新版瀏覽器得到了支持,有些需要添加瀏覽器前綴(-webkit-、-moz-、-ms-、-o-),本文為簡化內容,直接使用了原版屬性

根據不同屬性的支持度,在實際使用的時候需要添加對應的瀏覽器前綴支援

目錄:

  1. 變形transform
  2. 過渡transition
  3. 動畫animation

 

一、變形transform

變形有rotate旋轉、scale縮放、translate位移、skew傾斜、matrix矩陣變形、perspective透視幾種操作,透過例子來了解各個操作

1. 初始頁面結構

    <span style="color: #0000ff;"><span style="color: #800000;">style </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text/css"</span><span style="color: #0000ff;">></span><span style="background-color: #f5f5f5; color: #800000;">
        html </span><span style="background-color: #f5f5f5; color: #000000;">{</span><span style="background-color: #f5f5f5; color: #ff0000;">
            font-family</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> Arial</span><span style="background-color: #f5f5f5; color: #000000;">;</span>
        <span style="background-color: #f5f5f5; color: #000000;">}</span><span style="background-color: #f5f5f5; color: #800000;">

        .box </span><span style="background-color: #f5f5f5; color: #000000;">{</span><span style="background-color: #f5f5f5; color: #ff0000;">
            position</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> relative</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;">
            margin</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 200px auto</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;">
            width</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 100px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;">
            height</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 20px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;">
            text-align</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> center</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;">
            border</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 1px solid #ddd</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;">
            background-color</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> #75e275</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;">
            cursor</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> pointer</span><span style="background-color: #f5f5f5; color: #000000;">;</span>
        <span style="background-color: #f5f5f5; color: #000000;">}</span><span style="background-color: #f5f5f5; color: #800000;">

        .left,
        .right </span><span style="background-color: #f5f5f5; color: #000000;">{</span><span style="background-color: #f5f5f5; color: #ff0000;">
            position</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> absolute</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;">
            top</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> -10px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;">
            width</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 10px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;">
            height</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 40px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;">
            background-color</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> #4d8aeb</span><span style="background-color: #f5f5f5; color: #000000;">;</span>
        <span style="background-color: #f5f5f5; color: #000000;">}</span><span style="background-color: #f5f5f5; color: #800000;">

        .left </span><span style="background-color: #f5f5f5; color: #000000;">{</span><span style="background-color: #f5f5f5; color: #ff0000;">
            left</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 0</span><span style="background-color: #f5f5f5; color: #000000;">;</span>
        <span style="background-color: #f5f5f5; color: #000000;">}</span><span style="background-color: #f5f5f5; color: #800000;">

        .right </span><span style="background-color: #f5f5f5; color: #000000;">{</span><span style="background-color: #f5f5f5; color: #ff0000;">
            right</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> 0</span><span style="background-color: #f5f5f5; color: #000000;">;</span>
        <span style="background-color: #f5f5f5; color: #000000;">}</span><span style="background-color: #f5f5f5; color: #800000;">

        .box:hover </span><span style="background-color: #f5f5f5; color: #000000;">{</span><span style="background-color: #f5f5f5; color: #ff0000;">
            transform</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;"> rotate(-30deg)</span><span style="background-color: #f5f5f5; color: #000000;">;</span>
        <span style="background-color: #f5f5f5; color: #000000;">}</span>
    <span style="color: #0000ff;"></span><span style="color: #800000;">style</span><span style="color: #0000ff;">></span>    </span>
<span style="color: #0000ff;">  <span style="color: #800000;">div </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="box"</span><span style="color: #0000ff;">></span>
        <span style="color: #0000ff;"><span style="color: #800000;">div </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="left"</span><span style="color: #0000ff;">></span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span>
        <span style="color: #0000ff;"><span style="color: #800000;">div </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="right"</span><span style="color: #0000ff;">></span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span>
    <span style="color: #0000ff;"></span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span></span></span></span>

2. 變形操作

  1)旋轉 transform: rotate();    angle取值有:角度值deg,弧度值rad,梯度gard,轉/圈turn,正數值代表逆時針旋轉,反之時針旋轉,反之時針

<span style="color: #800000;">.box:hover </span>{<span style="color: #ff0000;">
    transform</span>:<span style="color: #0000ff;"> rotate(-30deg)</span>;
}

如果對元素本身或元素設定了perspective值(用於設定查看者的位置),那麼rotate3d()函數可以實作一個3維空間內的旋轉

rotateX(angele),相當於rotate3d(1,0,0,angle)指定在3維空間內的X軸旋轉

rotateY(angele),相當於rotate3d(0,1,0,angle)指定在3維空間內的Y軸旋轉

rotateZ(angele),相當於rotate3d(0,0,1,angle)指定在3維空間內的Z軸旋轉

<span style="color: #800000;">.box:hover </span>{<span style="color: #ff0000;">
    transform</span>:<span style="color: #0000ff;"> perspective(300px) rotateY(120deg)</span>;
}

<span style="color: #800000;">.box:hover </span>{<span style="color: #ff0000;">
    transform</span>:<span style="color: #0000ff;"> rotateY(120deg)</span>;
}

<span style="color: #800000;">.box:hover </span>{<span style="color: #ff0000;">
    transform</span>:<span style="color: #0000ff;"> rotate3d(1, 0, 0, 45deg)</span>;
}

  

2)縮放 transform: scale([, ]); 表示使元素在X軸和Y軸同時縮放

表示縮放倍數,可以是正數,負數和小數。負數是先翻轉元素然後再縮放。包含兩個參數,如果缺少第二個參數,那麼第二個參數的值就等於第一個參數。

scaleX():表示只在X軸(水平方向)縮放元素。

scaleY():表示只在Y軸(垂直方向)縮放元素。

scaleZ():表示只在Z軸縮放元素。前提是元素本身或元素的父元素設定了透視值

同樣的,有

scale3d(x, y, z)

<span style="color: #800000;">.box:hover </span>{<span style="color: #ff0000;">
    transform</span>:<span style="color: #0000ff;"> scale(1.5)</span>;
}

<span style="color: #800000;">.box:hover </span>{<span style="color: #ff0000;">
    transform</span>:<span style="color: #0000ff;"> scale(2, 1)</span>;
}

<span style="color: #800000;">.box:hover </span>{<span style="color: #ff0000;">
    transform</span>:<span style="color: #0000ff;"> scaleY(1.5)</span>;
}

  3)位移 transform: translate([, ]); 表示使元素在X轴和Y轴同时移动

表示位移量。包含两个参数,如果省略了第二个参数则第二个参数为0;如果参数为负,则表示往相反的方向移动。

translateX();表示只在X轴(水平方向)移动元素。

translateY();表示只在Y轴(垂直方向)移动元素。

translateZ();表示只在Z轴移动元素,前提是元素本身或者元素的父元素设定了透视值

同样的,有transform(x, y, z)

<span style="color: #800000;">.box:hover </span>{<span style="color: #ff0000;">
    transform</span>:<span style="color: #0000ff;"> translate(100px)</span>;
}

<span style="color: #800000;">.box:hover </span>{<span style="color: #ff0000;">
    transform</span>:<span style="color: #0000ff;"> translate(-30px, 50px)</span>;
}

  4)倾斜 transform: skew( [,]); 包含两个参数值,分别表示X轴和Y轴倾斜的角度,取值类型为角度值deg

如果第二个参数为空,则默认为0,参数为负表示向相反方向倾斜。

skewX();表示只在X轴(水平方向)倾斜

skewY();表示只在Y轴(垂直方向)倾斜

<span style="color: #800000;">.box:hover </span>{<span style="color: #ff0000;">
    transform</span>:<span style="color: #0000ff;"> skewX(30deg)</span>;
}

<span style="color: #800000;">.box:hover </span>{<span style="color: #ff0000;">
    transform</span>:<span style="color: #0000ff;"> skew(30deg, 30deg)</span>;
}

  5)矩阵变形 transform: matrix(,,,,,); 

matrix()是矩阵函数,以一个含六值的(a,c,e,b,d,f)变换矩阵的形式指定一个2D变换,相当于直接应用一个[a c e b d f]变换矩阵,其中c和e用正弦或余弦值表示

这六个参数实际上是一个3*3的矩阵:

<span style="color: #800000;">.box:hover </span>{<span style="color: #ff0000;">
    transform</span>:<span style="color: #0000ff;"> matrix(1, 0, 0, 2, 40, 20)</span>;
}

同样的,可用matrix3d定义3D转换,其是一个使用 了16 个值的 4x4 矩阵

 

  6)透视 transform: perspective(length); 设置查看者的位置,并将可视内容映射到一个视锥上,继而投影到一个 2D 视平面上
透视还可以直接定义成属性 perspective: ,但其是设置所有的子元素有一个共同的透视值

其对于 3D 变换来说至关重要,如果不指定透视,则 Z 空间中的所有点将平铺到同一个 2D 视平面中,并且变换结果中将不存透视深概念。作用于元素的子元素。

如下两种样式定义,结果相同

<span style="color: #800000;">body </span>{<span style="color: #ff0000;">
    perspective</span>:<span style="color: #0000ff;"> 300px</span>;
}<span style="color: #800000;">
.box:hover </span>{<span style="color: #ff0000;">
    transform</span>:<span style="color: #0000ff;"> rotateY(30deg)</span>;
}<span style="color: #800000;">

.box:hover </span>{<span style="color: #ff0000;">
    transform</span>:<span style="color: #0000ff;"> perspective(300px) rotateY(30deg)</span>;
}

  7) transfrom相关的其他属性

除了transform之外,还有一些变换相关的属性,这几个属性很少用到,还没理解到位...

  • transform-origin 变形原点 -- 允许你改变被转换元素的位置
  • transform-style  3D呈现 -- 规定被嵌套元素如何在 3D 空间中显示
  • perspective-origin  透视原点 -- 规定 3D 元素的底部位置
  • backface-visibility  隐藏内容的背面 -- 定义元素在不面对屏幕时是否可见

 

  7-1)transform-origin

该属性提供2个参数值,第一个用于横坐标,第二个用于纵坐标;如果只提供一个,该值将用于横坐标,纵坐标将默认为50%。

percentage:用百分比指定坐标值。可以为负值。

length:用长度值指定坐标值。可以为负值。

left center right是水平方向取值,而top center bottom是垂直方向的取值。

<span style="color: #800000;">.box:hover </span>{<span style="color: #ff0000;">
    transform-origin</span>:<span style="color: #0000ff;"> left</span>;<span style="color: #ff0000;">
    transform</span>:<span style="color: #0000ff;"> rotate(30deg)</span>;
}

  7-2) transform-style  

设置内嵌的元素在 3D 空间如何呈现。有两个值:flat:所有子元素在 2D 平面呈现;preserve-3d:保留3D空间

 

  7-3) perspective-origin

该属性定义在X轴和Y轴的3D元素。这个属性允许你改变3D元素的底部位置。定义时的perspective-origin属性,它是一个元素的子元素,透视图,而不是元素本身。
使用此属性必须和perspective属性一起使用,只影响3D转换的元素

该属性提供2个参数值,第一个用于横坐标,第二个用于纵坐标;如果只提供一个,该值将用于横坐标,纵坐标将默认为50%。

percentage:用百分比指定坐标值。可以为负值。

length:用长度值指定坐标值。可以为负值。

left,center right是水平方向取值,而top center bottom是垂直方向的取值。

  

  7-4)backface-visibility

该属性可用于隐藏内容的背面。默认情况下,背面可见,这意味着即使在翻转后,变换的内容仍然可见。但当 backface-visibility 设置为 hidden 时,旋转后内容将隐藏,因为旋转后正面将不再可见。取值有:

visible:默认值,旋转的时候背景可见。

hidden:旋转的时候背景不可见。

 

二、过渡transition

过渡transition是一个复合属性,可以同时定义transition-property、transition-duration、transition-timing-function、transition-delay子属性值

页面结构如上,根据例子熟悉这些属性

1. 综合transition  可同时设置四个子属性值

<span style="color: #800000;">        .box </span>{<span style="color: #ff0000;">
            position</span>:<span style="color: #0000ff;"> relative</span>;<span style="color: #ff0000;">
            margin</span>:<span style="color: #0000ff;"> 200px auto</span>;<span style="color: #ff0000;">
            width</span>:<span style="color: #0000ff;"> 100px</span>;<span style="color: #ff0000;">
            height</span>:<span style="color: #0000ff;"> 20px</span>;<span style="color: #ff0000;">
            text-align</span>:<span style="color: #0000ff;"> center</span>;<span style="color: #ff0000;">
            border</span>:<span style="color: #0000ff;"> 1px solid #ddd</span>;<span style="color: #ff0000;">
            background-color</span>:<span style="color: #0000ff;"> #75e275</span>;<span style="color: #ff0000;">
            cursor</span>:<span style="color: #0000ff;"> pointer</span>;<span style="color: #ff0000;">

            transition</span>:<span style="color: #0000ff;"> 2s background-color</span>;
        }            
<span style="color: #800000;">        .box:hover </span>{<span style="color: #ff0000;">
            background-color</span>:<span style="color: #0000ff;"> #0f0</span>;
        }    

2.transition-property 需要过渡的属性 all | none | [ , ]

<span style="color: #800000;">transition-duration: 2s;
transition-property: height,background-color</span>
<span style="color: #800000;">        .box:hover </span>{<span style="color: #ff0000;">
            width</span>:<span style="color: #0000ff;"> 130px</span>;<span style="color: #ff0000;">
            height</span>:<span style="color: #0000ff;"> 30px</span>;<span style="color: #ff0000;">
            background-color</span>:<span style="color: #0000ff;"> #0f0</span>;
        }    

3. transition-duration设置动画过渡的时间[执行时间],默认值0表示不过渡直接看到执行后的结果。单位是秒s,也可以是毫秒ms

4.transition-delay设置动画延迟执行的时间,默认值0表示立即执行,时间可以是正数也可以是负数,负数表示截断规定时间内的动画。单位是秒s,也可以是毫秒ms

<span style="color: #800000;">transition-delay: 1000ms;
transition-duration: 2s;
transition-property: height,background-color</span>

5. transition-timing-function设置动画的过渡效果,默认值ease,取值有

ease:缓解效果,等同于cubic-bezier(0.25,0.1,0.25,1.0)函数,既立方贝塞尔

linear:线性效果,等同于cubic-bezier(0.0,0.0,1.0,1.0)函数

ease-in:渐显效果,等同于cubic-bezier(0.42,0,1.0,1.0)函数

ease-out:渐隐效果,等同于cubic-bezier(0,0,0.58,1.0)函数

ease-in-out:渐显渐隐效果,等同于cubic-bezier(0.42,0,0.58,1.0)函数

cubic-bezier:特殊的立方贝塞尔曲线效果

<span style="color: #800000;">transition-timing-function: linear;
transition-delay: 1000ms;
transition-duration: 2s;
transition-property: height,background-color</span>

 

三、动画animation

动画的使用,首先通过@(-webkit-)keyframes 定义动画名称及动画的行为,再通过animation属性设置动画特征相关值进行调用

<span style="color: #800000;">        @keyframes test </span>{<span style="color: #ff0000;">
            from {
                width</span>:<span style="color: #0000ff;"> 100px</span>;<span style="color: #ff0000;">
                height</span>:<span style="color: #0000ff;"> 20px</span>;
            }<span style="color: #800000;">

            50% </span>{<span style="color: #ff0000;">
                height</span>:<span style="color: #0000ff;"> 50px</span>;
            }<span style="color: #800000;">

            to </span>{<span style="color: #ff0000;">
                width</span>:<span style="color: #0000ff;"> 130px</span>;<span style="color: #ff0000;">
                height</span>:<span style="color: #0000ff;"> 30px</span>;<span style="color: #ff0000;">
                background-color</span>:<span style="color: #0000ff;"> #0f0</span>;
            }<span style="color: #800000;">
        }

        .box:hover </span>{<span style="color: #ff0000;">
            animation</span>:<span style="color: #0000ff;"> test 2s</span>;
        }

以上代码设置了一个名称为test的动画,动画执行时间为2s,定义了从开始(from|0%)到结束(to|100%)的动画行为,开始的from可以省略,但结束的不可省略

见效果图

1. 综合animation ,可同时定义多个子属性

2. animation-name 动画名称,需与@keyframes中设置的一致

3. animation-duration 动画执行时间  

4. animation-delay 动画延迟时间  默认值0表示立即执行,正数为动画延迟一定时间,负数为截断一定时间内的动画。单位为秒(s)或毫秒(s)

5. animation-timing-function 动画的过渡类型,取值有:

ease:缓解效果,等同于cubic-bezier(0.25,0.1,0.25,1.0)函数,既立方贝塞尔。

linear:线性效果,等同于cubic-bezier(0.0,0.0,1.0,1.0)函数。

ease-in:渐显效果,等同于cubic-bezier(0.42,0,1.0,1.0)函数。

ease-out:渐隐效果,等同于cubic-bezier(0,0,0.58,1.0)函数。

ease-in-out:渐显渐隐效果,等同于cubic-bezier(0.42,0,0.58,1.0)函数。

step-start:马上转跳到动画结束状态。

step-end:保持动画开始状态,直到动画执行时间结束,马上转跳到动画结束状态。

steps([, [ start | end ] ]?):第一个参数number为指定的间隔数,即把动画分为n步阶段性展示,第二个参数默认为end,设置最后一步的状态,start为结束时的状态,end为开始时的状态,若设置与animation-fill-mode的效果冲突,而以animation-fill-mode的设置为动画结束的状态。

cubic-bezier(, , , ):特殊的立方贝塞尔曲线效果。

<span style="color: #800000;">        @keyframes test </span>{<span style="color: #ff0000;">
            to {
                transform</span>:<span style="color: #0000ff;"> rotate(1turn)</span>;
            }<span style="color: #800000;">
        }

        .box:hover </span>{<span style="color: #ff0000;">
            animation-name</span>:<span style="color: #0000ff;"> test</span>;<span style="color: #ff0000;">
            animation-duration</span>:<span style="color: #0000ff;"> 2s</span>;<span style="color: #ff0000;">
            animation-delay</span>:<span style="color: #0000ff;"> -.5s</span>;<span style="color: #ff0000;">
            animation-iteration-count</span>:<span style="color: #0000ff;"> 2</span>;<span style="color: #ff0000;">
            animation-timing-function</span>:<span style="color: #0000ff;"> linear</span>;
        }

值得注意的是steps中number参数的意义, 关于steps的参数解析

<span style="color: #800000;">        @keyframes test </span>{<span style="color: #ff0000;">
            50% {
                width</span>:<span style="color: #0000ff;"> 130px</span>;
            }<span style="color: #800000;">

            100% </span>{<span style="color: #ff0000;">
                width</span>:<span style="color: #0000ff;"> 160px</span>;
            }<span style="color: #800000;">
        }

        .box:hover </span>{<span style="color: #ff0000;">
            animation-name</span>:<span style="color: #0000ff;"> test</span>;<span style="color: #ff0000;">
            animation-duration</span>:<span style="color: #0000ff;"> 1s</span>;<span style="color: #ff0000;">
            animation-timing-function</span>:<span style="color: #0000ff;"> steps(5)</span>;<span style="color: #ff0000;">
            animation-fill-mode</span>:<span style="color: #0000ff;"> forwards</span>;
        }

steps(5)表示将动画行为中的每个间隔分成5段来进行,即0-50%分成5段,50%-100%分成5段 

6. animation-iteration-count: |infinite; 指定对象动画循环播放的次数。 infinite为无限循环

7. animation-direction 指定对象动画运动的方向

normal:正常方向,默认。

reverse:动画反向运行,方向始终与normal相反。(FF14.0.1以下不支持)

alternate:动画会循环正反方向交替运动,奇数次(1、3、5……)会正常运动,偶数次(2、4、6……)会反向运动,即所有相关联的值都会反向。

alternate-reverse:动画从反向开始,再正反方向交替运动,运动方向始终与alternate定义的相反。(FF14.0.1以下不支持)

<span style="color: #800000;">animation-direction: alternate-reverse;</span>

 

8. animation-fill-mode: 检索或设置对象动画时间之外的状态,取值有

none:默认值。不设置对象动画之外的状态

forwards:结束后保持动画结束时的状态,但当animation-direction为0,则动画不执行,持续保持动画开始时的状态

backwards:结束后返回动画开始时的状态

both:结束后可遵循forwards和backwards两个规则

<span style="color: #800000;">        @keyframes test </span>{<span style="color: #ff0000;">
            to {
                width</span>:<span style="color: #0000ff;"> 130px</span>;
            }<span style="color: #800000;">
        }

        .box:hover </span>{<span style="color: #ff0000;">
            animation-name</span>:<span style="color: #0000ff;"> test</span>;<span style="color: #ff0000;">
            animation-duration</span>:<span style="color: #0000ff;"> 1s</span>;<span style="color: #ff0000;">
            animation-timing-function</span>:<span style="color: #0000ff;"> linear</span>;<span style="color: #ff0000;">
            animation-fill-mode</span>:<span style="color: #0000ff;"> backwards</span>;
        }    

<span style="color: #800000;">animation-fill-mode: forwards; /* or both */</span>

 

9. animation-play-state: running | paused 检索或设置对象动画的状态,running为默认值

<span style="color: #800000;">        @keyframes test </span>{<span style="color: #ff0000;">
            to {
                transform-origin</span>:<span style="color: #0000ff;"> center center</span>;<span style="color: #ff0000;">
                transform</span>:<span style="color: #0000ff;"> rotate(1turn)</span>;
            }<span style="color: #800000;">
        }

        .box </span>{<span style="color: #ff0000;">
            animation-name</span>:<span style="color: #0000ff;"> test</span>;<span style="color: #ff0000;">
            animation-duration</span>:<span style="color: #0000ff;"> 1s</span>;<span style="color: #ff0000;">
            animation-timing-function</span>:<span style="color: #0000ff;"> linear</span>;<span style="color: #ff0000;">
            animation-fill-mode</span>:<span style="color: #0000ff;"> forwards</span>;<span style="color: #ff0000;">
            animation-iteration-count</span>:<span style="color: #0000ff;"> infinite</span>;
        }<span style="color: #800000;">

        .box:hover </span>{<span style="color: #ff0000;">
            animation-play-state</span>:<span style="color: #0000ff;"> paused</span>;
        }    

 

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
HTML和代碼:仔細觀察術語HTML和代碼:仔細觀察術語Apr 10, 2025 am 09:28 AM

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代碼” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代碼”代碼“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

HTML,CSS和JavaScript:Web開發人員的基本工具HTML,CSS和JavaScript:Web開發人員的基本工具Apr 09, 2025 am 12:12 AM

HTML、CSS和JavaScript是Web開發的三大支柱。 1.HTML定義網頁結構,使用標籤如、等。 2.CSS控製網頁樣式,使用選擇器和屬性如color、font-size等。 3.JavaScript實現動態效果和交互,通過事件監聽和DOM操作。

HTML,CSS和JavaScript的角色:核心職責HTML,CSS和JavaScript的角色:核心職責Apr 08, 2025 pm 07:05 PM

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

HTML容易為初學者學習嗎?HTML容易為初學者學習嗎?Apr 07, 2025 am 12:11 AM

HTML適合初學者學習,因為它簡單易學且能快速看到成果。 1)HTML的學習曲線平緩,易於上手。 2)只需掌握基本標籤即可開始創建網頁。 3)靈活性高,可與CSS和JavaScript結合使用。 4)豐富的學習資源和現代工具支持學習過程。

HTML中起始標籤的示例是什麼?HTML中起始標籤的示例是什麼?Apr 06, 2025 am 12:04 AM

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

如何利用CSS的Flexbox佈局實現菜單中虛線分割效果的居中對齊?如何利用CSS的Flexbox佈局實現菜單中虛線分割效果的居中對齊?Apr 05, 2025 pm 01:24 PM

如何設計菜單中的虛線分割效果?在設計菜單時,菜名和價格的左右對齊通常不難實現,但中間的虛線或點如何...

在線代碼編輯器究竟用什麼HTML元素實現代碼輸入?在線代碼編輯器究竟用什麼HTML元素實現代碼輸入?Apr 05, 2025 pm 01:21 PM

網頁代碼編輯器中的HTML元素分析許多在線代碼編輯器允許用戶輸入HTML、CSS和JavaScript代碼。最近,有人提出了一...

React靜態頁面構建:如何用react-app-rewired避免代碼壓縮?React靜態頁面構建:如何用react-app-rewired避免代碼壓縮?Apr 05, 2025 pm 01:18 PM

關於使用react-app-rewired構建靜態頁面時如何避免代碼壓縮許多開發者在使用React構建靜態頁面時,希望在交付給�...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用