吹吹🌈屁,做做🌈Loading,内附彩虹魔力转圈圈 🤔

彩虹Loading

效果图

rainbow-loading.gif

HTML结构

            <div class="mask">
    
                <div class="loading">
                
                    <div class="vertical-bar"></div>
                    <div class="vertical-bar"></div>
                    <div class="vertical-bar"></div>
                    <div class="vertical-bar"></div>
                    <div class="vertical-bar"></div>
                    <div class="vertical-bar"></div>
                    <div class="vertical-bar"></div>
                    <div class="vertical-bar"></div>

                </div>

            </div>

主要有两部分一部分是mask样式的遮罩层,还有就是里面的loading,veryical-barlaoding样式。

CSS样式

CSS部分分成两部分来看首先看遮罩层的样式

.mask{
    position:absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(255, 255, 255,0.8);
    z-index: 250;
    overflow: hidden;
    pointer-events: none;
}


.mask::before {
    content: "\2716";
    pointer-events: auto;
    position: absolute;
    top:5%;
    left: 80%;
    font-size: 3rem;
}

mask样式设置了position为相对body元素为绝对位置脱离正常文档流,并设置为全屏,设置z轴层数为250 完全没有暗喻的意思哈。设置布局为弹性布局,并使内部元素 水平 垂直 居中,并设置 鼠标事件失效。
.mask::before利用前置伪元素 创建关闭图标,实现loading关闭功能。

接下来看一下重头戏loading,veryical-bar

.loading{

    height: 4rem;
    width: 8rem;
    
    display: flex;
    align-items: center;

}

.loading .vertical-bar{
    
    width: 1rem;
    height: 4rem;
    margin: 0 3px;
    background-color: #000; 
    animation: loading-bar 0.8s infinite;
}

.loading .vertical-bar:nth-child(1){
    background-color: black;
}

.loading .vertical-bar:nth-child(2){
    animation-delay: 0.1s;
    background-color: red;
}

height: 4rem; width: 8rem;首先设置loading的长宽;

display: flex; align-items: center; 设置为弹性布局,这样内部块级元素不会独占一行了,并设置内部竖条垂直居中。

通过.loading .vertical-bar主要设置了竖条的长宽,外部间隔,背景色 还有变化的动画。
通过.loading .vertical-bar:nth-child(n)设置内部一共8个竖条每个竖条的背景色不同 而且 动画开始的延迟时间不同。

@keyframes loading-bar{

    0%{
        height: 4rem;
        opacity: 0.4;
    }
    50%{
        height: 0rem;
        opacity: 1;
    }
    100%{
        height: 4rem;
        opacity: 0.4;
    }

}

定义了竖条的动态帧,起始满长度;0.4的不透明度,中途一般长度,1的不透明度,最后又是满长度;0.4的不透明度。

结语

本文所有源码可以点击链接下载,源码中还有彩虹圈圈Loading的彩蛋哦,赶紧去看看吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,815评论 1 92
  • 一、20160328-听永澄解读第十二章《辅助阅读》 (一)4个收获 1.关于热情靠谱不的拓展。 真正的高手是把无...
    周而佳境阅读 303评论 0 0
  • 3.1 吃饭穿衣 我的童年时代,虽然物质匮乏,生活清苦。但是依然开心、快乐地生活着。 在正常年景下,我家作为一个中...
    蔡喜源阅读 362评论 2 2
  • 城区禁煤如火如荼,百姓家中如坐冰窖!大气污染防控紧迫,寒窖冰冻何人问津?
    夜繁星昼飘云阅读 199评论 0 0
  • 今天早上,六点半我准时赶上了到旁边地铁站的接驳车,这个车半个钟一班,要是我错过了这一班,得等下一班七点钟的。 自从...
    qq167阅读 180评论 0 0