css3 过渡

过渡(transition)

通过过渡可以指定一个属性发生变化时的切换方式

通过过渡可以创建一些非常好的效果,提升用户的体验

transition-property

transition-property: 指定要执行过渡的属性

多个属性间使用 , 隔开
如果所有属性都需要过渡,则使用 all 关键字,all 是 默认值

大部分属性都支持过渡效果,注意过渡时必须是从一个有效数值向另外一个有效数值进行过渡

transition: width, margin;
transition: all;

transition-duration

transition-duration: 指定过渡持续的时间

时间单位:s 和 ms
1s = 1000ms

transition-duration: 500ms;
transition-duration: .5s;

transition-timing-function

transition-timing-function: 过渡的时序函数

指定过渡的执行的方式
可选值:

  • ease 默认值,慢速开始,加速,慢速结束

  • linear 线性,匀速运动

  • ease-in 慢速开始,加速到结束

  • ease-out 加速开始,慢速结束

  • ease-in-out 先加速后减速,和 ease 和细微差别

  • cubic-bezier() 贝塞尔曲线函数

    https://cubic-bezier.com

  • steps() 分步执行过渡效果
    第一个值为 步数

    可以设置第二个值:
    end , 在时间结束时执行过渡(默认值)
    start , 在时间开始时执行过渡

transition-delay

transition-delay: 延迟时间

过渡效果的延迟,等待一段时间后在执行过渡

transition

transition:

可以同时设置过渡相关的所有属性,只有一个要求,如果要写延迟,则两个时间中第一个是持续时间,第二个是延迟。省略的属性都采用默认值。

.box2{
    background-color: #bfa;
    transition: margin-left 2s 1s cubic-bezier(.24,.95,.82,-0.88);
}
.box3{
    background-color: orange;
    transition-property: all;
    transition-timing-function: linear;
    transition-duration: 2s;
    transition-delay: 1s;
}

效果

transition

米兔 练习

bigtap-mitu-queue-big

用过度效果对上面的雪碧图实现动画效果

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>米兔</title>
    <style>
        .mitu {
            width: 132px;
            height: 271px;
            margin: 100px auto;
            background-image: url("https://liwker.top/gitee/img/20210106145912.png");
            background-position: 0 0;
            background-repeat: repeat-x;

            /* 通过过度设置动画 */
            transition-property: background-position;
            transition-duration: 3s;
            /* 每3(n-1)步为一个周 */
            transition-timing-function: steps(15 ,end);
        }
        .mitu:hover {
            /* 对图片经过计算,一个周需要移动 -396px */
            background-position: -1980px 0;
        }

    </style>
</head>
<body>
    <div class="mitu"></div>
</body>
</html>

效果

米兔

posted @ 2021-01-06 15:04  Liwker  阅读(71)  评论(0编辑  收藏  举报