• 前端(九)—— 过渡与动画


    过渡与动画

    一、过渡

    1、什么是过渡

    从一个状态以动画方式变成另一种状态的这种变化过程就叫做过渡

    2、过属性

    /*1. transition-property 属性 表示可过渡的样式属性*/
    transition-property: all | [css1 [...]];
    
    /*2. transition-duration 属性 表示过渡持续时间*/
    transition-duration: <time>;
    
    /*3. transition-delay 属性 表示过渡延迟时间*/
    transition-delay: <time>;
    
    /*4. transition-timing-function 属性 表示过渡运动曲线*/
    transition-timing-function: linear | ease | ease-in-out | easa-in | ease-out | cubic-bezier();
         linear:匀速
         ease:慢快慢
         ease-in-out:慢快慢
         easa-in:慢快
         ease-out:快慢
         cubic-bezier():贝赛尔曲线函数(常用)
    
    /*5. transition 属性 表示前四个属性整体赋值,用空格隔开*/
    transition: <transition-property> <transition-duration> <transition-delay> <transition-timing-function>;

    3、案例

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>过度案例</title>
        <style type="text/css">
            .box {
                width: 300px;
                height: 300px;
                margin: 0 auto;
                border-bottom: 1px solid black;
                position: relative;
            }
            .line {
                width: 30px;
                height: 30px;
                background-color: orange;
                position: absolute;
                bottom: 5px;
                /*top: 270px;*/
                left: 120px;
                transition: .4s;
            }
            .line:hover {
                height: 200px;
            }
            .b {
                width: 30px;
                height: 10px;
                border-radius: 50%;
                background-color: #333;
                position: absolute;
                bottom: -5px
            }
            .t {
                width: 30px;
                height: 10px;
                border-radius: 50%;
                background-color: #333;
                position: absolute;
                top: -5px
            }
        </style>
    </head>
    <body>
        <div class="box">
            <div class="line">
                <div class="t"></div>
                <div class="b"></div>
            </div>
        </div>
    </body>
    </html>
    过渡案例

    二、动画

    1、动画属性

    /*1. animation-name 属性 表示动画名(名字任意起)*/
    animation-name: <name>;
    
    /*2. animation-duration 属性 表示动画持续时间*/
    animation-duration: <time>;
    
    /*3. animation-delay 属性 表示动画延迟时间*/
    animation-delay: <time>;
    
    /*4. animation-timing-function 属性 表示动画运动曲线*/
    animation-timing-function: linear | ease | ease-in-out | easa-in | ease-out | cubic-bezier();
         linear:匀速
         ease:慢快慢
         ease-in-out:慢快慢
         easa-in:慢快
         ease-out:快慢
         cubic-bezier():贝赛尔曲线函数
    /*5. animati5.-play-state 属性 表示动画状态*/
    animation-play-state: running | paused
         running:运行
         paused:暂停
    
    /*6. animation-fill-mode 属性 表示动画结束后的停留位置*/
    animation-fill-mode: forwards | backwards
         forwards:终点 
         backwards:起点
    
    /*7. animation-iteration-count 属性 表示动画次数*/
    animation-iteration-count: <count> | infinite
         <count>:固定次数
         infinite:无限次
    
    /*8. animation-direction 属性 表示运动方向*/
    animation-direction: normal | alternate | alternate-reverse;
         normal:原起点为第一次运动的起点,且永远从起点向终点运动
         alternate:原起点为第一次运动的起点,且来回运动
         alternate-reverse:原终点变为第一次运动的起点,且来回运动

    /*animation 属性 整体设置 用空格隔开*/
    animation: <
    animation-name> <animation-duration> <animation-iteration-count> <animation-timing-function> <animation-direction>

    2、动画体

    /*写法一*/
    @keyframes <name>{
        /*from未写任何属性设置时,默认全部取初始值(初始状态)*/
        from{}
        to{}
    }
    
    /*写法二*/
    @keyframes <name>{
        0% {}
        ...
        100% {}
    }

    3、案例

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>动画</title>
        <style type="text/css">
            .box {
                width: 200px;
                height: 200px;
                background-color: orange;
            }
            /*动画样式*/
            .box {
                /*绑定动画名*/
                /*animation-name: wasai;*/
                /*持续时间*/
                /*animation-duration: 1s;*/
                /*延迟时间*/
                /*animation-delay: .1s;*/
                /*动画结束停留位置:backwards起点 forwards终点*/
                /*animation-fill-mode: forwards;*/
                /*运动次数 infinite无数次*/
                /*animation-iteration-count: 4;*/
                /*多次运动方向的规则*/
                /*alternate:来回*/
                /*alternate-reverse:终点开始来回*/
                /*animation-direction: alternate-reverse;*/quotes: ;
                /*动画状态 running*/
                /*animation-play-state: paused;*/
    
                /*整体设置*/
                animation: wasai 1s 2 linear alternate;
            }
            .box:hover {
                animation-play-state: running;
            }
            /*动画体*/
            @keyframes wasai{
                   0% {
    
                   }
                100% {
                    width: 400px;
                }
            }
            @keyframes wasai1{
                   0% {}
                100% {}
            }
            @keyframes wasai2{
                   0% {}
                100% {}
            }
        </style>
    </head>
    <body>
        <div class="box"></div>
    </body>
    </html>
    动画案例
  • 相关阅读:
    MongoDB + Spark: 完整的大数据解决方案
    07对象字面量
    05JavaScript中数组的使用
    04JavaScript中函数也是对象
    03JavaScript中的函数预解析
    02通过arguments实现方法重载
    01函数重名问题
    mxGraph 学习笔记 --mxGraph常用功能代码
    mxGraph学习笔记--设置节点鼠标事件
    mxGraph 学习笔记 --右键菜单
  • 原文地址:https://www.cnblogs.com/linagcheng/p/9714224.html
Copyright © 2020-2023  润新知