npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ngx-animations

v5.0.4

Published

An adaptation of Animate.css using @angular/animations

Downloads

129

Readme

Codacy Badge Build Status codecov Known Vulnerabilities License MIT

NgxAnimations

This is an adaptation of the Animate.css animations using the @angular/animations library.

  • You can find a demo here.
  • Angular 11.x use ngx-animations 5.x
  • Angular 9.x use ngx-animations 4.x
  • Angular 8.x use ngx-animations 3.x
  • Angular 7.x use ngx-animations 2.x

Installing and importing NgxAnimations

1 Install ngx-animations :

npm install ngx-animations

Or

yarn add ngx-animations

2 Import the BrowserAnimationsModule and NgxAnimationsModule in your module :

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgxAnimationsModule } from 'ngx-animations';
...

@NgModule({
  imports:      [ BrowserAnimationsModule, NgxAnimationsModule ],
  ...
})

Using the AnimatedDirective to create animations on events with a minimum of code

<div (click)="myDiv.animate()">
  <div #myDiv="animated" [animAted]="{time: 800, animation: 'flip'}"></div>
</div>

Running example on stackblitz using @ngx-starter-kit/ngx-utils InViewportDirective

Using the AnimIfDirective to animate an element on init and before destroy

Use the *animIf directive to set the start and end animation :

<div
  *animIf="show; info: { startAnim: 'bounceIn', endAnim: 'bounceOut', time: 1000 }"
></div>

Add custom animations to the existing animations

Create an AnimationDefinition instance for every animation you want to add :

const animationDefinition = new AnimationDefinition({}, [
  { background: 'blue', width: '25%', offset: 0.25 },
  { background: 'green', width: '100%', offset: 0.5 },
  { background: 'yellow', width: '50%', offset: 0.75 },
  { background: 'black', width: '200px', offset: 1 }
]);

Inject the AnimationsService in your AppModule and use the addAnimations method to add your array of AnimationDefinitions:

constructor(private animationsService: AnimationsService) {
  this._animationsService.addAnimations([{ name: 'aCustomAnimation', animation: animationDefinition }]);
}

That's it, you are now ready to use your custom animation like other native animations.

You can find a running example for custom animations on stackblitz

Use the AnimationsService to create and use animations (you can use AnimatedDirective instead)

Then in your component :

Import the desired animation and the AnimationsService :

import { fadeIn, AnimationsService } from 'ngx-animations';

Get your element using the @ViewChild annotation :

@ViewChild('element') element: ElementRef;

Inject the AnimationsService :

constructor(private animationsService: AnimationsService) {}

After that you can create the player :

const player = this.animationsService.create(
  fadeIn(300),
  this.element.nativeElement
);

And play the animation :

player.play();

Add routing transition animations

stackblitz example

First add animation to routing data :

{
    path: "animals",
    component: AnimalsComponent,
    data: { animation: "AnimalsPage" }
  },
  {
    path: "fruits",
    component: FruitsComponent,
    data: { animation: "FruitsPage" }
  }

Then you can either use a generic value * => * for all the transitions :

@Component({
  selector: "my-app",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.css"],
  animations: [
    trigger("routeAnimation", [
      buildRouteTransition({
        stateChangeExpr: "* => *",
        enter: animations.fadeIn(1000),
        leave: animations.fadeOut(1000)
      })
    ])
  ]
})
export class AppComponent {}

Or add a specific animation for each transition :

@Component({
  selector: "my-app",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.css"],
  animations: [
    trigger("routeAnimation", [
      buildRouteTransition({
        stateChangeExpr: "AnimalsPage => FruitsPage",
        enter: animations.zoomInRight(500),
        leave: animations.zoomOutLeft(200)
      }),
      buildRouteTransition({
        stateChangeExpr: "FruitsPage => AnimalsPage",
        enter: animations.zoomInLeft(500),
        leave: animations.zoomOutRight(200)
      })
    ])
  ]
})
export class AppComponent {}

Finally link the animation definition to the template :

<main [@routeAnimation]="o.activatedRouteData.animation">
	<router-outlet #o="outlet"></router-outlet>
</main>

List of animations

bounce flash pulse rubberBand shake swing tada wobble jello bounceIn bounceInDown bounceInLeft bounceInRight bounceInUp bounceOut bounceOutDown bounceOutLeft bounceOutRight bounceOutUp fadeIn fadeInDown fadeInDownBig fadeInLeft fadeInLeftBig fadeInRight fadeInRightBig fadeInUp fadeInUpBig fadeOut fadeOutDown fadeOutDownBig fadeOutLeft fadeOutLeftBig fadeOutRight fadeOutRightBig fadeOutUp fadeOutUpBig flip flipInX flipInY flipOutX flipOutY lightSpeedIn lightSpeedOut rotateIn rotateInDownLeft rotateInDownRight rotateInUpLeft rotateInUpRight rotateOut rotateOutDownLeft rotateOutDownRight rotateOutUpLeft rotateOutUpRight slideInUp slideInDown slideInLeft slideInRight slideOutUp slideOutDown slideOutLeft slideOutRight zoomIn zoomInDown zoomInLeft zoomInRight zoomInUp zoomOut zoomOutDown zoomOutLeft zoomOutRight zoomOutUp hinge jackInTheBox rollIn rollOut backInDown backInLeft backInRight backInUp backOutDown backOutLeft backOutRight backOutUp