Socket
Book a DemoInstallSign in
Socket

angular2-drag-scroll

Package Overview
Dependencies
Maintainers
1
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular2-drag-scroll

Lightweight drag to scroll directive for Angular2

1.4.5
Source
npmnpm
Version published
Weekly downloads
111
-0.89%
Maintainers
1
Weekly downloads
 
Created
Source

Lightweight drag to scroll carousel for Angular2+

npm version Build Status License MIT

Scroll on drag!

Scroll

Try out the demo!

Install

You can get it on npm.

npm install angular2-drag-scroll --save

Setup

You'll need to add DragScrollModule to your application module.

import { DragScrollModule } from 'angular2-drag-scroll';
...

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    DragScrollModule,
    ...
  ],
  providers: [],
  bootstrap: [AppComponent]
})

export class AppModule {
}

Add the drag-scroll attribute to a scrollable element:

@Component({
  selector: 'sample',
  template:`
  <div drag-scroll>
    Big text goes here...
  </div>
  `
})
class Sample {}

That's it! Now you can scroll it by dragging.

API REFERENCE

NameTypeDescriptionDefault
scrollbar-hidden@InputWhether the scroll bar for this element is hidden.false
drag-scroll-disabled@InputWhether all draging and scrolling events is disabled.false
drag-scroll-x-disabled@InputWhether horizontally dragging and scrolling events is disabled.false
drag-scroll-y-disabled@InputWhether vertically dragging and scrolling events is disabled.false
drag-disabled@InputWhether draging is disabled.false
snap-disabled@InputWhether snapping is disabled.false
reachesLeftBound@OutputWhether reaching the left carousel bound.n/a
reachesRightBound@OutputWhether reaching the right carousel bound.n/a

Add navigation button

@Component({
  selector: 'sample',
  template:`
  <div drag-scroll #nav>
    Big text goes here...
  </div>
  <button (click)="moveLeft()">Left</button>
  <button (click)="moveRight()">Right</button>
  `
})
class Sample {
  @ViewChild('nav', {read: DragScroll}) ds: DragScroll;
  
  moveLeft() {
    this.ds.moveLeft();
  }

  moveRight() {
    this.ds.moveRight();
  }
}

Dynamically apply the plugin to a DOM element

This was brought by @tommykamkcm. The below code block demonstrates how to attach the directive dynamically on a DOM i.e. deep rendered element.


constructor(
  private cdr: ChangeDetectorRef,
  private element: ElementRef,
  private renderer: Renderer
) {}
dragScrollDom: any;
dragScrollRef: ElementRef;
dragScroll: DragScroll;

ngAfterViewInit() {
  // attach to .nav-tabs element
  this.dragScrollDom = this.element.nativeElement.querySelector('.nav-tabs');
  this.dragScrollRef = new ElementRef(this.dragScrollDom );

  this.dragScroll = new DragScroll(this.dragScrollRef, this.renderer, this.cdr);
  this.dragScroll.attach({
    disabled: false,
    scrollbarHidden: true,
    yDisabled: true,
    xDisabled: false,
  });
}

Contributing

Clone the repository, and run npm install, npm start. The demo app will starts on port :4200. I usually do my development on the demo app.

I'll accept pretty much everything so feel free to open a Pull-Request

License

MIT

Keywords

Angular 2

FAQs

Package last updated on 10 Nov 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.