样式如下图所示:
实现方法
步骤一、在根目录下的index.html文件里面添加的代码
css里面添加以下代码:
.preloader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
background: #49a9ee;
z-index: 9999;
transition: opacity .65s
}
.preloader-hidden-add {
opacity: 1;
display: block
}
.preloader-hidden-add-active {
opacity: 0
}
.preloader-hidden {
display: none
}
.cs-loader {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%
}
.cs-loader-inner {
transform: translateY(-50%);
top: 50%;
position: absolute;
width: 100%;
color: #fff;
text-align: center
}
.cs-loader-inner label {
font-size: 20px;
opacity: 0;
display: inline-block
}
@keyframes lol {
0% {
opacity: 0;
transform: translateX(-300px)
}
33% {
opacity: 1;
transform: translateX(0)
}
66% {
opacity: 1;
transform: translateX(0)
}
100% {
opacity: 0;
transform: translateX(300px)
}
}
.cs-loader-inner label:nth-child(6) {
animation: lol 3s infinite ease-in-out
}
.cs-loader-inner label:nth-child(5) {
animation: lol 3s .1s infinite ease-in-out
}
.cs-loader-inner label:nth-child(4) {
animation: lol 3s .2s infinite ease-in-out
}
.cs-loader-inner label:nth-child(3) {
animation: lol 3s .3s infinite ease-in-out
}
.cs-loader-inner label:nth-child(2) {
animation: lol 3s .4s infinite ease-in-out
}
.cs-loader-inner label:nth-child(1) {
animation: lol 3s .5s infinite ease-in-out
}
在body里面添加以下代码:
<div id="preloader" class="preloader">
<div class="cs-loader">
<div class="cs-loader-inner">
<label> ●</label>
<label> ●</label>
<label> ●</label>
<label> ●</label>
<label> ●</label>
<label> ●</label>
</div>
</div>
</div>
步骤二、新建一个名为preloader.service.ts的文件,文件内容如下
import {Inject, Injectable} from '@angular/core';
import {DOCUMENT} from '@angular/common';
@Injectable({
providedIn: 'root'
})
export class PreloaderService {
private _selector = 'preloader';
private _element: HTMLElement;
constructor(@Inject(DOCUMENT) private doc: Document) {
this._element = document.getElementById(this._selector)!;
}
show() {
this._element.style['display'] = 'block';
}
hide() {
this._element.style['display'] = 'none';
}
//removePreLoader(): void {
// const preloader = this.doc.querySelector('.preloader');
// if (!preloader) {
// return;
// }
// preloader.addEventListener('transitionend', () => {
// preloader.className = 'dis-no';
// });
//}
}
步骤三、app.component.ts里面引入步骤二的文件,然后在进入系统的时候隐藏动画
import { PreloaderService } from './service/preloader.service';
constructor(
private preLoader: PreloaderService
) { }
ngOnInit() {
this.publicHttp.login();
}
ngAfterViewInit() {
this.preLoader.hide();
}