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

animate-on-scroll-sample-project

v0.0.0

Published

A very simple Angular directive with no dependencies that allows you to add CSS animations on elements, once that element has been reached via scrolling the page. Works with whatever CSS animation you choose, including Animate.css as shown in examples. A

Downloads

20

Readme

ng2-animate-on-scroll

A very simple Angular directive with no dependencies that allows you to add CSS animations on elements, once that element has been reached via scrolling the page. Works with whatever CSS animation you choose, including Animate.css as shown in examples. An example without animate.css can be found here, with animate.css can be found here.

Installation

To install the directive in your project, run:

$ npm install ng2-animate-on-scroll --save

Using the directive

Modify the following in your app module:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

// import third-party module
import { AnimateOnScrollModule } from 'ng2-animate-on-scroll';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,

    // import module here
    AnimateOnScrollModule.forRoot()
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

Use the directive in your component template:

<div animateOnScroll animationName="animation-class-name"></div>

animationName attribute

(Optional). The animationName attribute is for the name(s) of the CSS class(es) to be added at the time the element appears. In cases when no animation is required (e.g in a ngif case) specify null. Here is a real-world example if you were using the Animate.css library in your project:

<div class="container">

  long scrolling content..

  <div class="animated" animateOnScroll animationName="fadeIn">
    animated content upon appearing in the viewport..
  </div>

</div>

or

<div class="container">

  long scrolling content..

  <div animateOnScroll animationName="animated fadeIn">
    animated content upon appearing in the viewport..
  </div>

</div>

Animate.css Peculiarity

If you're using Animate.css with this component and you're trying to animate an element IN to view (fadeIn, slideInLeft etc), you may experience "flashing" when the element scrolls into the viewport (i.e. the element will be shown, then be hidden, then animate into view). This can be mitigated by overriding Animate.css's .animated class, then applying visibility: hidden; to the element you want to hide:

.animated {
    visibility: visible !important;
}
.hide-on-init {
    visibility: hidden;
}
<div class="container">

  long scrolling content..

  <div class="hide-on-init" animateOnScroll animationName="animated fadeIn">
    animated content upon appearing in the viewport..
  </div>

</div>

offset attribute

You can also optionally add an offset attribute (thanks siegerx3) to specify the number of pixels you would need to scroll to below the top of the element for the animation to activate. The default is 80 pixels and the value given can be positive or negative.

  <div animateOnScroll animationName="animated slideDown" offset="120">
    content with different pixel offset specified
  </div>

Options available

| Options | Type | Comments | |:------------:|:-------------:|:-------------:| | animationName | string/null | Add animation class or null in case no animation is required | | offset | number | For scroll Listener, to add offsets | | useScroll | boolean | Add for using scroll Listener, default is true and uses intersection observer | | threshold | number | Add threshold value for intersection observer only |

Developing ng2-animate-on-scroll with the demo application

  1. After cloning this repo, install dependencies with npm install.
  2. The command npm run watch will build the library in watch mode (you can alternately use npm run build:lib if you prefer not to run in watch mode). 3. Finally, npm run start will start the server for the demo app. If you prefer you can use npm run dev:ssr to start the demo in server rendered mode using Angular Universal.

License

MIT © Aaron Hazelton