• css3 实现loading效果


    1 圆点渐入渐出

    要点: 缩放和透明度的变化,循环变化

    <div class="demo1"></div>

    .demo1{
                width: 40px;
                height: 40px;
                margin: 0 auto;
                border-radius: 100px;
                background-color: red;
                opacity: 1;
                animation: fadeIn 1s infinite ease-in-out;
            }
            @-webkit-keyframes fadeIn{
                from{
                    transform: scale(0);
                }
                to{
                    transform: scale(1);
                    opacity: 0;
                }
            }
            @keyframes fadeIn{
                from{
                    transform: scale(0);
                }
                to{
                    transform: scale(1);
                    opacity: 0;
                }
            }

    2 线条loading图

    要点:使用缩放实现线条的高度的变化,循环变化,使用animation-delay的负值实现动画的连续变化(负值:动画立即执行,从设置的值之后开始执行动画,比如是-1s,表示从动画的1s之后开始执行,前一秒的动画直接跳过,不执行)

    html

    <div class="demo2">
                <div class="line1"></div>
                <div class="line2"></div>
                <div class="line3"></div>
                <div class="line4"></div>
                <div class="line5"></div>
            </div>

    css

    .demo2 div{
        width: 3px;
        height: 20px;
        margin-right: 2px;
        display: inline-block;
        background-color: green;
        animation: loading 1.2s infinite ease-in-out;
    
    }
     .demo2 .line2{
        animation-delay: -1.1s;
    }
    .demo2 .line3{
        animation-delay: -1s;
    }
    .demo2 .line4{
        animation-delay: -0.9s;
    }
    .demo2 .line5{
        animation-delay: -0.8s;
    } 
    @keyframes loading{
        0%,40%,100%{
            transform: scaleY(.4);
        }
        20%{
            transform: scaleY(1);
        }
     }
     @-webkit-keyframes loading{
        0%,40%,100%{
            transform: scaleY(.4);
        }
        20%{
            transform: scaleY(1);
        }
     }

    3 旋转圆圈loading

    要点:利用边框颜色实现,实现一个圆有一个边的颜色不一样,然后让元素一直循环旋转;

    <div class="dem3"></div>

    .demo3{
        width: 100px;
        height: 100px;
        border: 3px solid #eee;
        border-left-color: #fff;
        margin: 100px auto;
        border-radius: 100px;
        animation: loading1s infinite linear;
    }
    
    @keyframes loading{
        from{
            transform: rotate(0deg);
        }
        to{
            transform: rotate(360deg);
        }
    }

  • 相关阅读:
    原型链与继承
    js错误处理Try-catch和throw
    函数柯里化
    js函数节流
    事件委托
    innerHTML属性的内存和性能问题
    微信小程序左滑显示按钮demo
    this的作用
    前端工作面试经典问题(超级全)
    HTML5入门指南
  • 原文地址:https://www.cnblogs.com/xiaofenguo/p/10620107.html
Copyright © 2020-2023  润新知