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

ng2-track-scroll

v1.1.5

Published

Track Scroll for Angular

Downloads

17

Readme

ng2-track-scroll npm version MIT license

Track Scroll for Angular2

Features

  • easy-to-use directive: tracks when element enters a certain point of the window just by adding trackScroll directive
  • customizable: adjust tracker position, and pixel offset

Quick Start

npm install ng2-track-scroll --save

Table of contents

Setup

First you need to install the npm module:

npm install ng2-track-scroll --save

Then add the Ng2TrackScrollModule to the imports array of your application module (or a shared module):

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { Ng2TrackScrollModule } from 'ng2-track-scroll'; // <-- import the module
import { AppComponent} from './app.component';

@NgModule({
    imports: [
      BrowserModule, 
      Ng2TrackScrollModule.forRoot() // <-- include it in your app module
    ], 
    declarations: [AppComponent],
    bootstrap: [AppComponent]
})
export class AppModule {
  //
}

Usage

In your template you should add the trackScroll attribute to elements you want to enable tracking. As soon as the tracking point gets past an trackScrollEnter event will be triggered, and as soon as the height of the element gets past an trackScrollLeave event will be triggered.


@Component({
   selector: 'main-element',
   template: `
        ...
        <h1 trackScroll 
            (trackScrollEnter)="enter()" 
            (trackScrollLeave)="leave()">Component Title</h1>
        <!-- Further content here -->
        ...
   `
})
export class MainElementComponent {
  
  enter() {
    console.log('Track scroll enter is working!');
  }

  leave() {
    console.log('Track scroll leave is working too!');
  }
}

Configuration

In your template you could pass some configurations, adding [trackScrollConfig]="{ ... }" with any of the options to overwrite.

| Option | Type | Default | Description | | ---------------- | ------- | -------- |-------------- | | position | string | 'middle' | Position of the tracking point. Options: 'top', 'middle', 'bottom' | offset | number | 0 (px) | Amount of pixels to add to the tracking point | offsetPosition | string | 'bottom' | If you select position 'middle' and specify an offset amount, you could indicate if you want to add them on above or below the tracking point. Options: 'top, 'bottom'


@Component({
   selector: 'main-element',
   template: `
        ...
        <h1 trackScroll [trackScrollConfig]="{ position: 'top', offset: 300 }" 
            (trackScrollEnter)="enter()"
            (trackScrollLeave)="leave()">Component Title</h1>
        <!-- Further content here -->
        ...
   `
})
export class MainElementComponent {
  
  enter() {
    console.log('Track scroll enter is working!');
  }

  leave() {
    console.log('Track scroll leave is working too!');
  }
}

Demo

The demo subfolder contains a project created with angular-cli that has been adapted to showcase the functionality of ng2-track-scroll. To execute the code follow this steps:

// Go the the demo folder
cd demo

// Install dependencies
npm install

// Run the server
ng serve

Then go to http://localhost:4200 to check the demo running.

TODO:

  • Test across browsers
  • Implement a debug option
  • Add tests to the library and demo
  • Add new configurations

License

MIT