ng2-custom-carousel
Version:
Carousel Component for Angular 2+. Easily customizable, with autoscroll, loop and navigation controls
147 lines (117 loc) • 5.1 kB
Markdown
# Ng2CustomCarousel
Carousel `component` for Angular 2+. Easily customizable, with autoscroll, loop and navigation controls.
List of features
* Easily customizable.
* Autoscroll.
* Continuous loop.
* Navigation indicators and controls.
* Customizable number of visible slides.
* Customizable direction of scroll.
* Customizable speed of scroll.
* Slides margins.
## Examples/Demo
* Live Demo: <a href="https://www.ritxweb.com/ng2carousel/">https://www.ritxweb.com/ng2carousel/</a>
## Installation
`npm i ng2-custom-carousel`
## API
`import { Ng2CustomCarouselModule } from 'ng2-custom-carousel';`<br>
`selector: ng2-custom-carousel`
### @Inputs()
| Input | Type | Required | Description |
| ---------------- | ------- | ---------------------------------- | -------------------------------------------------------------------------------------------- |
| timing | string | Optional, default: '250ms ease-in' | the time and type of transition between slides. |
| showControls | boolean | Optional, default: true | if true shows the 'next' and 'prev' navigation controls. |
| showNavigation | string | Optional, default: 'radio' | choose the type of navigation indicators between 'radio', 'numbers' or 'none' |
| autoScroll | number | Optional, default: 0 | number of milliseconds between navigation of slides automatically, 0 for no auto navigation. |
| loop | boolean | Optional, default: true | if true the carousel runs in continuous loop. |
| slidesN | number | Optional, default: 0 | max number of slides to show, 0 to show all the slides possible. |
| scrollDirection | string | Optional, default: 'left' | choose the direction of the autoscroll between 'left' or 'right'. |
| slidesMargin | number | Optional, default: 0 | number of pixels of margin between slides. |
## Usage
1) Register the `Ng2CustomCarouselModule` in your app module.
> `import { Ng2CustomCarouselModule } from 'ng2-custom-carousel';'`
```typescript
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { AppComponent } from './app.component';
import { Ng2CustomCarouselModule } from 'ng2-custom-carousel';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
Ng2CustomCarouselModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
```
2) Use the selector `(ng2-custom-carousel)` in your component.
```typescript
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `
<div class="ng2-custom-carousel-container">
<ng2-custom-carousel timing="400ms ease-in" [showControls]="true" [autoScroll]="2000" showNavigation="radio"
[slidesN]="4" [loop]="true" scrollDirection="left" [slidesMargin]="100">
<ng-container *ngFor="let item of ng2CusomCarouselItems;">
<ng-container *ng2CustomCarouselItem>
<div class="ng2-custom-carousel-element">
<!-- PLACE HERE YOUR SLIDE CONTENT -->
{{item.title}}
</div>
</ng-container>
</ng-container>
</ng2-custom-carousel>
</div>
`,
styles:[`
.ng2-custom-carousel-container {
width: 100%;
margin: auto;
}
.ng2-custom-carousel-element {
padding: 0;
width: 300px;
height: 300px;
background-color: crimson;
color: #fff;
font-size: 50px;
line-height: 300px;
text-align: center;
}
`]
})
export class AppComponent {
ng2CustomCarouselItems = [
{ title: 'Slide 1' },
{ title: 'Slide 2' },
{ title: 'Slide 3' },
{ title: 'Slide 4' },
{ title: 'Slide 5' },
{ title: 'Slide 6' },
{ title: 'Slide 7' },
{ title: 'Slide 8' },
{ title: 'Slide 9' },
{ title: 'Slide 10' },
{ title: 'Slide 11' }
];
}
```
## Running the example in local env
* `npm i`
* `ng build ng2-custom-carousel`
* Run `ng serve` for a dev server and running the demo app. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
## Build the Ng2CustomCarousel module
Run `ng build ng2-custom-carousel` to build the module. The build artifacts will be stored in the `dist/ng2-custom-carousel` directory.
## Running unit tests
Run `ng test ng2-custom-carousel` to execute the unit tests via [Karma](https://karma-runner.github.io).
## License
This project is licensed under the GNU General Public License v3.0.
## Credits
To my families.