Sass编写实现loading图标

Sass编写实现loading图标

前言

今天有空看了看微信官方设计团队弄的WeUI中的loading图标,研究下了它的loading小图标的实现,但是看完后发现写地太水,那Less写得也很一般(虽然我不用Less),于是就自己编写实现了一个。

实现方式

微信用的是Less实现,而我用的是Sass来实现(追随大漠大神)。

不说废话,Sass代码如下:

.loading {
    $centerRadius: 1em;
    $itemWidth: .5em;
    $itemHeight: .2em;
    $width: $centerRadius + $itemWidth * 2;
    $height: $width;
    width: $width;
    height: $height;
    position: relative;
    .loading-item {
        width: $itemWidth;
        height: $itemHeight;
        margin-top: $itemHeight / 2 * -1;
        margin-left: $centerRadius / 2;
        top: 50%;
        left: 50%;
        position: absolute;
        background-color: #d1d1d5;
        transform-origin: ($centerRadius / 2 * -1) ($itemHeight / 2);
        border-radius: 1px;
        @for $i from 1 through 12 {
            &:nth-child(#{$i}) {
                transform: rotate(($i - 1) * 30deg);
                animation: loading-item 1s linear infinite #{-1 + $i / 12}s;
            }
        }
        @at-root {
            @keyframes loading-item{
                0% {
                    opacity: 1;
                }
                @for $i from 1 through 11 {
                    #{$i / 12 * 100}% {
                        opacity: 1 - $i / 12;
                    }
                }
                100% {
                    opacity: 1;
                }
            }
        }
    }
}

loading的html结构代码:

<div class="loading">
    <div class="loading-item"></div>
    <div class="loading-item"></div>
    <div class="loading-item"></div>
    <div class="loading-item"></div>
    <div class="loading-item"></div>
    <div class="loading-item"></div>
    <div class="loading-item"></div>
    <div class="loading-item"></div>
    <div class="loading-item"></div>
    <div class="loading-item"></div>
    <div class="loading-item"></div>
    <div class="loading-item"></div>
</div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值