Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/leo6104/ngx-slick-carousel
Angular 17+ wrapper for slick plugin
https://github.com/leo6104/ngx-slick-carousel
angular carousel jquery slick slick-carousel ui
Last synced: 23 days ago
JSON representation
Angular 17+ wrapper for slick plugin
- Host: GitHub
- URL: https://github.com/leo6104/ngx-slick-carousel
- Owner: leo6104
- Created: 2018-04-29T18:31:56.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2024-09-26T07:34:48.000Z (3 months ago)
- Last Synced: 2024-10-04T01:34:57.935Z (2 months ago)
- Topics: angular, carousel, jquery, slick, slick-carousel, ui
- Language: TypeScript
- Homepage:
- Size: 2.83 MB
- Stars: 109
- Watchers: 2
- Forks: 43
- Open Issues: 53
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
- awesome-angular - ngx-slick-carousel - Angular 17+ wrapper for slick plugin. (Table of contents / Third Party Components)
- fucking-awesome-angular - ngx-slick-carousel - Angular 17+ wrapper for slick plugin. (Table of contents / Third Party Components)
- fucking-awesome-angular - ngx-slick-carousel - Angular 17+ wrapper for slick plugin. (Table of contents / Third Party Components)
README
# ngx-slick-carousel
[![npm version](https://badge.fury.io/js/ngx-slick-carousel.svg)](https://badge.fury.io/js/ngx-slick-carousel)
[![Build Status](https://travis-ci.com/leo6104/ngx-slick-carousel.svg?branch=master)](https://travis-ci.com/leo6104/ngx-slick-carousel)1. Support Angular 17 (not compatible with <= 16, if you want, use 15.0.0 release)
2. Support Server side rendering
3. Support Re-initialize case
4. Fastest slick init/unslick implementation in Angular## Installation
To install this library, run:
```bash
$ npm install jquery @types/jquery --save
$ npm install slick-carousel @types/slick-carousel --save
$ npm install ngx-slick-carousel --save
```## Consuming your library
Once you have published your library to npm, you can import your library in any Angular application by running:
```bash
$ npm install ngx-slick-carousel --save
```and then from your Angular standalone component:
```typescript
import { Component } from '@angular/core';// Import your library
import { SlickCarouselModule } from 'ngx-slick-carousel';@Component({
...,
standalone: true,
imports: [
SlickCarouselModule, // Put in here
],
})
export class ExampleComponent {
...
}
```- Include slick css in "styles" at your `angular.json` file :
```
"styles": [
...
"node_modules/slick-carousel/slick/slick.scss",
"node_modules/slick-carousel/slick/slick-theme.scss",
...
]
```- Include jquery and slick js in "scripts" at your `angular.json` file :
```
"scripts": [
...
"node_modules/jquery/dist/jquery.min.js",
"node_modules/slick-carousel/slick/slick.min.js",
...
]
```Once your library is imported, you can use its components, directives and pipes in your Angular application:
```html
@for (slide of slides; track slide.img) {
}
Add
Remove
slickGoto 2
unslick
``````typescript
@Component({
...,
standalone: true,
imports: [
SlickCarouselModule,
],
})
class ExampleComponent {
slides = [
{img: "http://placehold.it/350x150/000000"},
{img: "http://placehold.it/350x150/111111"},
{img: "http://placehold.it/350x150/333333"},
{img: "http://placehold.it/350x150/666666"}
];
slideConfig = {"slidesToShow": 4, "slidesToScroll": 4};
addSlide() {
this.slides.push({img: "http://placehold.it/350x150/777777"})
}
removeSlide() {
this.slides.length = this.slides.length - 1;
}
slickInit(e) {
console.log('slick initialized');
}
breakpoint(e) {
console.log('breakpoint');
}
afterChange(e) {
console.log('afterChange');
}
beforeChange(e) {
console.log('beforeChange');
}
}
```**(IMPORTANT)** If `slides` variable will be changed dynamically, use `trackBy` in `*ngFor` syntax. It will minimize `ngxSlickItem` directive recreation.
## Development
To generate all `*.js`, `*.d.ts` and `*.metadata.json` files:
```bash
$ npm run build
```To lint all `*.ts` files:
```bash
$ npm run lint
```## License
MIT © [leo6104](mailto:[email protected])