UNPKG

ng2-component-spinner

Version:

A fairly simple and customizable spinner for your angular 2/4 component.

62 lines (55 loc) 1.92 kB
import { Component, Input } from '@angular/core'; @Component({ selector: 'spinner-component', template: `<div *ngIf="spinnerShow" class="sc-background"></div> <div *ngIf="spinnerShow" [ngClass]="{'sc-default-spinner' : ref.children.length == 0 }" class="sc-center"> <div #ref><ng-content></ng-content></div></div>`, styles: [` .sc-default-spinner { width: 20px; height: 20px; background-color: orange; -webkit-animation: sk-rotateplane 1.2s infinite ease-in-out; animation: sk-rotateplane 1.2s infinite ease-in-out; } @-webkit-keyframes sk-rotateplane { 0% { -webkit-transform: perspective(120px) } 50% { -webkit-transform: perspective(120px) rotateY(180deg) } 100% { -webkit-transform: perspective(120px) rotateY(180deg) rotateX(180deg) } } @keyframes sk-rotateplane { 0% { transform: perspective(120px) rotateX(0deg) rotateY(0deg); -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg) } 50% { transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg) } 100% { transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } } .sc-background{ content : ""; z-index: 1; position: absolute; top:0; right:0; left:0; bottom: 0; background-color: rgba(255,255,255,0.8); } .sc-center{ top: 50%; margin: auto; position: absolute; left: 0; right: 0; z-index: 2; transform: translatey(-50%); } `] }) export class SpinnerComponent { @Input() spinnerShow: boolean; }