如何处理 ngx-slick-carousel 中 Angular 组件的轮播按钮
How to handle carousel buttons from Angular component in ngx-slick-carousel
我正在使用 ngx-slick-carousel 为 Angular 应用实现一个漂亮的轮播。
如何创建 next
和 prev
方法来从组件切换幻灯片?
这是我的 html:
<ngx-slick-carousel class="carousel" #slickModal="slick-carousel" [config]="slideConfig" (init)="slickInit($event)" (breakpoint)="breakpoint($event)" (afterChange)="afterChange($event)" (beforeChange)="beforeChange($event)">
<div ngxSlickItem *ngFor="let slide of slides" class="slide">
<img [src]="slide.image" alt="" width="100%">
</div>
</ngx-slick-carousel>
配置:
slideConfig = {
centerPadding: '60px',
slidesToShow: 2,
slidesToScroll: 1,
arrows: false
};
组件:
import { SlickCarouselComponent } from 'ngx-slick-carousel';
@ViewChild('slickModal') slickModal: SlickCarouselComponent;
next() {
this.slickModal.slickNext();
}
prev() {
this.slickModal.slickPrev();
}
HTML:
<button class="btn-next" (click)="next()">next</button>
<button class="btn-prev" (click)="prev()">prev</button>
import {Component, ViewChild} from '@angular/core';
import { SlickCarouselComponent } from "ngx-slick-carousel";
@Component({
selector: 'slick-use-trackby-example',
template: `
<ngx-slick-carousel class="carousel"
#slickModal="slick-carousel"
[config]="slideConfig">
<div ngxSlickItem *ngFor="let slide of slides; trackBy: _trackBy" class="slide">
<img src="{{ slide.img }}" alt="" width="100%">
</div>
</ngx-slick-carousel>
<button class="btn-next" (click)="next()">next</button>
<button class="btn-prev" (click)="prev()">prev</button>
})
export class SlickTrackbyExampleComponent {
@ViewChild('slickModal', { static: true }) slickModal: SlickCarouselComponent;
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: 1,
arrows: false,
autoplay: false,
autoplaySpeed: 3000,
speed: 1500,
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 3,
}
},
{
breakpoint: 600,
settings: {
slidesToShow: 2,
}
},
{
breakpoint: 480,
settings: {
slidesToShow: 1,
}
}
]
};
next() {
this.slickModal.slickNext();
}
prev() {
this.slickModal.slickPrev();
}
}
我正在使用 ngx-slick-carousel 为 Angular 应用实现一个漂亮的轮播。
如何创建 next
和 prev
方法来从组件切换幻灯片?
这是我的 html:
<ngx-slick-carousel class="carousel" #slickModal="slick-carousel" [config]="slideConfig" (init)="slickInit($event)" (breakpoint)="breakpoint($event)" (afterChange)="afterChange($event)" (beforeChange)="beforeChange($event)">
<div ngxSlickItem *ngFor="let slide of slides" class="slide">
<img [src]="slide.image" alt="" width="100%">
</div>
</ngx-slick-carousel>
配置:
slideConfig = {
centerPadding: '60px',
slidesToShow: 2,
slidesToScroll: 1,
arrows: false
};
组件:
import { SlickCarouselComponent } from 'ngx-slick-carousel';
@ViewChild('slickModal') slickModal: SlickCarouselComponent;
next() {
this.slickModal.slickNext();
}
prev() {
this.slickModal.slickPrev();
}
HTML:
<button class="btn-next" (click)="next()">next</button>
<button class="btn-prev" (click)="prev()">prev</button>
import {Component, ViewChild} from '@angular/core';
import { SlickCarouselComponent } from "ngx-slick-carousel";
@Component({
selector: 'slick-use-trackby-example',
template: `
<ngx-slick-carousel class="carousel"
#slickModal="slick-carousel"
[config]="slideConfig">
<div ngxSlickItem *ngFor="let slide of slides; trackBy: _trackBy" class="slide">
<img src="{{ slide.img }}" alt="" width="100%">
</div>
</ngx-slick-carousel>
<button class="btn-next" (click)="next()">next</button>
<button class="btn-prev" (click)="prev()">prev</button>
})
export class SlickTrackbyExampleComponent {
@ViewChild('slickModal', { static: true }) slickModal: SlickCarouselComponent;
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: 1,
arrows: false,
autoplay: false,
autoplaySpeed: 3000,
speed: 1500,
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 3,
}
},
{
breakpoint: 600,
settings: {
slidesToShow: 2,
}
},
{
breakpoint: 480,
settings: {
slidesToShow: 1,
}
}
]
};
next() {
this.slickModal.slickNext();
}
prev() {
this.slickModal.slickPrev();
}
}