css实现Ant Design中菊花图loading效果

一、布局

<body>
    <div>
        <span>
            <i></i><i></i><i></i><i></i>
        </span>
    </div>

</body>
<style>
    span {
        display: inline-block;
        position: relative;
        width: 20px;
        height: 20px;
        margin-top: 10px
    }

    span i {
        position: absolute;
        width: 9px;
        height: 9px;
        transform: scale(0.75);
        border-radius: 100%;
        background: cornflowerblue;
        opacity: 0.3;
        display: block;
    }

    span i:nth-child(1) {
        left: 0;
        top: 0;
    }

    span i:nth-child(2) {
        right: 0;
        top: 0;
    }

    span i:nth-child(3) {
        right: 0;
        bottom: 0;
    }

    span i:nth-child(4) {
        left: 0;
        bottom: 0;
    }

</style>

现在我们看一下布局后的样式

二、动画

我们初始的时候设置的圆圈透明度是0.3,之后我们通过依次改变每一个小圆圈的透明度为1来实现加载的效果,为了让加载的动画更加明显,我们同时加入整个元素旋转的动画,下面是菊花 loading的所有的样式设置

span {
        display: inline-block;
        position: relative;
        width: 20px;
        height: 20px;
        animation: myrotate 1.8s infinite linear;
        margin-top: 10px
}

span i {
        position: absolute;
        width: 9px;
        height: 9px;
        transform: scale(0.75);
        border-radius: 100%;
        background: cornflowerblue;
        opacity: 0.3;
        display: block;
        animation: myopacity 1s infinite linear;
}

span i:nth-child(1) {
        left: 0;
        top: 0;
}

span i:nth-child(2) {
        right: 0;
        top: 0;
        animation-delay: 0.4s;
}

span i:nth-child(3) {
        right: 0;
        bottom: 0;
        animation-delay: 0.8s;
}

span i:nth-child(4) {
        left: 0;
        bottom: 0;
        animation-delay: 1.2s;
}

@keyframes myrotate {
        to {
            transform: rotate(450deg);
        }
}

@keyframes myopacity {
        to {
            opacity: 1;
        } 
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值