less实现骨架屏加载方案

.skeleton {

    /* 骨架动画 */
    @skeleton-style: {
        background-image: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%);
        background-size: 400% 100%;
        animation: skeleton-loading 1.4s ease infinite;
    }

    /* 单行,通常用于标题这种单行块元素 */
    &-block:empty::before {
        display: inline-block;
        width: 100%;
        content: 'skeleton';
        text-indent: -999em;
        @skeleton-style();
    }

    /* 内敛,通常用于额外的小信息 */
    &-inline:empty::before {
        display: inline-block;
        content: 'skeleton';
        text-indent: -999em;
        width: 50%;
        @skeleton-style();
    }

    /* 多行,通常用于正文 */
    &-multi:empty {

        &::before {
            display: inline-block;
            width: 100%;
            content: 'skeleton';
            text-indent: -999em;
            margin-bottom: 0.2em;
            @skeleton-style();
        }

        &::after {
            display: inline-block;
            content: 'skeleton';
            text-indent: -999em;
            width: 50%;
            @skeleton-style();
        }

    }

    /* 动画 */
    @keyframes skeleton-loading {
        0% {
            background-position: 100% 50%;
        }

        100% {
            background-position: 0 50%;
        }
    }

}

 

posted @ 2020-09-18 16:40  星陨的菲  阅读(150)  评论(0编辑  收藏  举报