• CSS3 动画


    变形 transform

    在CSS3中,动画效果包括3个部分:变形(transform)、过渡(transition)、动画(animation

    translate()平移

    1. transform: translateX(x);    /*沿x轴方向平移*/
    2. transform: translateY(y);    /*沿y轴方向平移*/
    3. transform: translate(x, y);   /*沿x轴和y轴同时平移*/

    scale()缩放

    1. transform: scaleX(x);    /*沿x轴方向缩放*/
    2. transform: scaleY(y);    /*沿y轴方向缩放*/
    3. transform: scale(x, y);   /*沿x轴和y轴同时缩放*/

    当x或y取值为0~1时,元素进行缩小;当x或y取值大于1时,元素进行放大。

    skew() 倾斜

    倾斜也有3种情况:skewX()、skewY()、skew()。

    参数x表示元素在x轴方向的倾斜度数,单位为deg(即degree的缩写)。如果度数为正,则表示元素沿x轴方向逆时针倾斜;如果度数为负,则表示元素沿x轴方向顺时针倾斜。
    参数y表示元素在y轴方向的倾斜度数,单位为deg。如果度数为正,则表示元素沿y轴方向顺时针倾斜;如果度数为负,则表示元素沿y轴方向逆时针倾斜。

    rotate()旋转

    transform: rotate(angle);

    参数angle表示元素相对于中心原点旋转的度数,单位为deg。如果度数为正,则表示顺时针旋转;如果度数为负,则表示逆时针旋转。
     

    transform-origin改变中心原点

    在CSS3变形中,任何元素都有一个中心原点。默认情况下,元素的中心原点位于x轴和y轴的50%处。
    CSS3的各种变形(平移、缩放、倾斜等)都是以元素的中心原点进行变形的。

    我们可以使用transform-origin属性来改变元素的中心原点。

    transform-origin属性取值有两种:一种是“长度值”,另一种是“关键字”。当取值为长度值时,单位可以为px、em和百分比等。当取值为关键字时,transform-origin属性取值跟background-position属性取值是相似的。

    过渡 transition 

    我们可以使用transition属性将元素的某一个属性从“一个属性值”在指定的时间内平滑地过渡到“另一个属性值”,从而实现动画效果。
    CSS变形(transform)呈现的仅仅是一个“结果”,而CSS过渡(transition)呈现的是一个“过程”。
    transition: 过渡属性 过渡时间 过渡方式 延迟时间;

     凡是涉及CSS3过渡,我们都是结合:hover伪类来实现过渡效果的。
    我们可以使用transition-timing-function属性来定义过渡方式。所谓“过渡方式”,指的是动画在过渡时间内的速率变化方式。

     

    1. transition-property:border-radius,background-color;
    2. transition-duration:1s;
    3. transition-timing-function:linear;
    4. transition-delay: 0s;

    上面这段代码可以等价于:

    transition:all 1s linear 0s;

    当transition-property属性定义为all时,CSS3会自动判断哪些属性是作为过渡效果的属性,相对来说更加简单方便。
    由于transition-delay属性是一个可选属性,因此当transition-delay取值为0s时,这个参数可以省略。

    transition:all 1s linear;

    动画 animation

    ▶ 对于transition属性来说,它只能将元素的某一个属性从一个属性值过渡到另一个属性值。
    ▶ 对于animation属性来说,它可以将元素的某一个属性从第1个属性值过渡到第2个属性值,然后还可以继续过渡到第3个属性值,以此类推。

    nimation:动画名称 持续时间 动画方式 延迟时间 动画次数 动画方向;

    1. *定义动画*/
    2. @keyframes mycolor
    3. {
    4. 0%{background-color:red;}
    5. 30%{background-color:blue;}
    6. 60%{background-color:yellow;}
    7. 100%{background-color:green;}
    8. }
    9. /*调用动画*/
    10. div:hover
    11. {
    12. animation:mycolor 5s linear;
    13. }

    在调用动画之前,我们必须先使用@keyframes规则来定义动画。
    在使用@keyframes规则时,如果仅仅只有0%和100%这两个百分比,此时0%和100%可以使用关键字from和to来代替,其中0%对应from,100%对应to。

    我们可以使用animation-duration属性来定义动画的持续时间。
    animation-duration属性取值是一个时间,单位为秒(s),可以是小数。

    我们可以使用animation-timing-function属性来定义动画的动画方式。所谓“动画方式”,指的是动画在过渡时间内的速率变化方式。
    animation-timing-function属性取值共有5种,这跟CSS3过渡的transition-timing-function是一样的。

    我们可以使用animation-iteration-count属性来定义动画的播放次数。
    animation-iteration-count属性取值有两种:一种是“正整数”,另一种是“infinite”。当取值为n(正整数)时,表示动画播放n次;当取值为infinite时,表示动画播放无数次,也就是循环播放。

    我们可以使用animation-direction属性来定义动画的播放方向。

    1. /*第1个i元素*/
    2. #box>i:nth-child(1)
    3. {
    4. left: 0;
    5. animation: loading 1s ease-in 0.1s infinite;
    6. }

  • 相关阅读:
    三菱电子推出16W GaN PA,用于大规模MIMO
    嵌入式Linux设备自动获取IP地址
    Zabbix安装与部署
    第5讲:Python运算符的优先级以及结核性
    二进制文件可视化(二)
    mysql为什么使用B+树
    ES千亿级数据检索实战-搜索优化建议
    Go中的编程模式:Pipeline
    【Rust日报】2022-11-03 - 《连线(Wired)》杂志:接管技术的“病毒式”安全编程语言...
    【Unity3D】VideoPlayer组件
  • 原文地址:https://blog.csdn.net/sinat_37138973/article/details/128035746