A simple NativeScript + Angular images carousel for iOS and Android.
Tested on:
- Nativescript 4
- Typescript 3
- Angular 6
You can download older versions here for previous versions of Angular and Nativescript.
I would appreciate any feedback as well as bug reporting, suggestions or changes - please create an issue.
You can check a reference application here created to show how to integrate the "{N} + Angular Carousel Slider".
| iOs | Android |
|---|---|
![]() |
![]() |
See demo for further details.
- Download and install the module via npm to your Nativescript project:
cd your_tns_project_path/ npm install nativescript-ng2-carousel --save
- Add the CarouselDirective class to the declarations NgMoudle metadata:
@NgModule({
declarations: [AppComponent, CarouselDirective],
bootstrap: [AppComponent],
imports: [NativeScriptModule],
schemas: [NO_ERRORS_SCHEMA]
})
- To use the CarouselDirective, create a template that applies the directive as an attribute to a paragraph GridLayout element:
<GridLayout [carousel]="images" carouselLabelOverlay="true" carouselSpeed="2000">
</GridLayout>
Add images from URL to your component:
@Component({
selector: "my-app",
templateUrl: "app.component.html"
})
export class AppComponent {
protected images: Array = [];
constructor() {
this.images = [
{ title: 'Image 1', url: 'https://unsplash.it/400/300/?image=867' },
{ title: 'Image 2', url: 'https://unsplash.it/400/300/?image=870' },
{ title: 'Image 3', url: 'https://unsplash.it/400/300/?image=876' },
];
}
}
You can also add images from your assets folder or resources folder using file attribute instead of url attribute:
@Component({
selector: "my-app",
templateUrl: "app.component.html"
})
export class AppComponent {
protected images: Array = [];
constructor() {
this.images = [
{ title: 'Image 1', url: 'https://unsplash.it/400/300/?image=867' },
{ title: 'Image 2', file: '~/assets/sea-sunset.jpg' },
{ title: 'Image 2', file: 'res://mountain' }, // Resource without extension
{ title: 'Image 3', url: 'https://unsplash.it/400/300/?image=876' },
];
}
}
- CSS styling:
/** Slider image */
.slider-image {
}
/** Slider title format */
.slider-title {
color: #fff;
font-weight: bold;
background-color: rgba(125, 125, 125);
padding: 8;
text-align: center;
vertical-align: bottom;
}
/** Arrows */
.arrow {
color: #ffffff;
font-size: 32;
vertical-align: middle;
padding: 10;
}
/** Arrow left wrapper */
.arrow.arrow-left {
}
/** Arrow right */
.arrow.arrow-right {
}
Currently directive supported attributes:
- carousel list of images as JSON or CarouselSlide class, accepted parameters (title?, url?, file?)
- carouselSpeed (optional) defines the interval (number in ms) to wait before the next slide is shown
- carouselAnimationSpeed (optional) defines the animation speed (number in ms)
- carouselArrows (optional) arrow type, accepted values none, small, normal, bold or narrow (default normal)
- carouselLabelOverlay (optional) silde title over image, accepted values true or false (default false)
Version 0.1.0
- Fix bug "Unable to find directive"
- Demo folder moved https://github.com/alcoceba/ngCarouselDirectiveDemo
- Improved documentation
- Added requiered dependencies
- Updated to Nativescript 4 + Angular 6
Version 0.0.5
- Possibility to load images from resources folder in Android and iOS
Version 0.0.4
- Updated to Nativescript 3 + Angular 4
Version 0.0.3
- Package.json fixes
- Minor fixes

