angular的进入系统的动画

样式如下图所示:

实现方法

步骤一、在根目录下的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();
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值