理解CSS3属性transition

一、说明

1.1 定义和用法

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

  • transition-property:规定设置过渡效果的CSS属性的名称。
  • transition-duration:规定完成过渡效果需要多少秒或毫秒。
  • transition-timing-function:规定速度效果的速度曲线。
  • transition-delay:定义过渡效果何时开始。

1.2 语法

transition: property duration timing-function delay;

1.3 transition-timing-function

1.3.1 语法

transition-timing-function: linear|ease|ease-in|ease-out|ease-in-out|cubic-
bezier(n,n,n,n);

1.3.2 说明
  • linear:规定以相同速度开始至结束的过渡效果(等于cubic-bezier(0,0,1,1))。
  • ease:规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。
  • ease-in:规定以慢速开始的过渡效果(等于cubic-bezier(0.42,0,1,1))。
  • ease-out:规定以慢速结束的过渡效果(等于cubic-bezier(0,0,0.58,1))。
  • ease-in-out:规定以慢速开始和结束的过渡效果(等于cubic-bezier(0.42,0,0.58,1))。
  • cubic-bezier(n,n,n,n):在cubic-bezier函数中定义自己的值。可能的值是0至1之间的数值。

二、示例

<style>
    .transition-example{
        width: 500px;
        height: 370px;
        background: #ccc;
        padding: 10px 0;
    }
    .transition-example:hover>div{
        margin-left: 90%;
        transform: rotate(360deg);
        border-radius: 5px;
    }
    .transition-example>div{
        width: 50px;
        height: 50px;
        text-align: center;
        margin: 10px 0;
        background-color: blue;
        color: #fff;
    }
    .linear{
        transition: all 5s linear;
    }
    .ease{
        transition: all 5s ease;
    }
    .ease-in{
        transition: all 5s ease-in;
    }
    .ease-out{
        transition: all 5s ease-out;
    }
    .ease-in-out{
        transition: all 5s ease-in-out;
    }
    .cubic-bezier{
        transition: all 5s cubic-bezier(0.42,0,0.58,1);
    }
    
</style>
<div class="transition-example">
    <div class="linear">linear</div>
    <div class="ease">ease</div>
    <div class="ease-in">ease-in</div>
    <div class="ease-out">ease-out</div>
    <div class="ease-in-out">ease-in-out</div>
    <div class="cubic-bezier">cubic-bezier</div>
</div>
linear
ease
ease-in
ease-out
ease-in-out
cubic-bezier