- Carousel走马灯
- 代码演示
- API
Carousel走马灯
走马灯,轮播图
代码演示
基本用法
最简单的用法。
import { Component } from '@angular/core';
@Component({
selector: 'demo-carousel-basic',
template: `
<WingBlank>
<Carousel [infinite]="true"
[vertical]="false"
[selectedIndex]="1"
(beforeChange)="beforeChange($event)"
(afterChange)="afterChange($event)"
>
<CarouselSlide *ngFor="let item of state.data">
<div style="display: inline-block; width: 100%;" [ngStyle]="{'height': state.imgHeight}">
<img src="https://zos.alipayobjects.com/rmsportal/{{item}}.png" style=" pointer-events: none; width: 100%;"/>
</div>
</CarouselSlide>
</Carousel>
</WingBlank>
`
})
export class DemoCarouselBasicComponent {
state = {
data: ['AiyWuByWklrrUDlFignR', 'TekJlZRVCjLFexlOCuWn', 'IJOtIlfsYdTyaDTRVrLI'],
imgHeight: '184px'
};
beforeChange(event) {
console.log('slide ' + event.from + ' to ' + event.to);
}
afterChange(event) {
console.log('slide to ' + event);
}
}
子元素数量变化
子元素数量变化。
import { Component } from '@angular/core';
@Component({
selector: 'demo-carousel-basic-dynamic',
template: `
<WingBlank>
<div Button (onClick)="onClick1()">Click me to add child</div>
<WhiteSpace></WhiteSpace>
<Carousel [infinite]="true"
(beforeChange)="beforeChange($event)"
(afterChange)="afterChange($event)"
>
<CarouselSlide *ngFor="let item of state.data;let i = index" [ngStyle]="{'height': state.imgHeight}">
<div style="display: inline-block; width: 100%;" [ngStyle]="{'height': state.imgHeight}">
<img src="https://zos.alipayobjects.com/rmsportal/{{item}}.png" style="pointer-events: none; width: 100%;"/>
</div>
</CarouselSlide>
</Carousel>
</WingBlank>
`
})
export class DemoCarouselBasicDynamicComponent {
state = {
data: ['AiyWuByWklrrUDlFignR', 'TekJlZRVCjLFexlOCuWn', 'IJOtIlfsYdTyaDTRVrLI'],
imgHeight: '184px'
};
beforeChange(event) {
console.log('slide ' + event.from + ' to ' + event.to);
}
afterChange(event) {
console.log('slide to ' + event);
}
onClick1() {
this.state.data.push('AiyWuByWklrrUDlFignR');
}
}
竖向
import { Component } from '@angular/core';
@Component({
selector: 'demo-carousel-vertical',
template: `
<WingBlank>
<WhiteSpace></WhiteSpace>
<Carousel class="my-carousel"
[autoplay]="true"
[infinite]="true"
[vertical]="true"
[dots]="false"
[dragging]="false"
>
<CarouselSlide *ngFor="let item of state.data">
<div class="v-item">carousel {{item}}</div>
</CarouselSlide>
</Carousel>
</WingBlank>
`,
styles: [
`
.my-carousel .v-item {
height: 36px;
line-height: 36px;
padding-left: 10px;
}
`
]
})
export class DemoCarouselVerticalComponent {
state = {
data: ['1', '2', '3']
};
}
抽奖
import { Component } from '@angular/core';
@Component({
selector: 'demo-carousel-lottery',
template: `
<WingBlank>
<WhiteSpace></WhiteSpace>
<Carousel class="my-carousel"
[dots]="false"
[speed]="200"
[autoplay]="true"
[infinite]="true"
[vertical]="true"
[dragging]="false"
[autoplayInterval]="300"
>
<CarouselSlide *ngFor="let item of state.data;let i = index">
<div class="v-item">carousel {{item}}</div>
</CarouselSlide>
</Carousel>
</WingBlank>
`,
styles: [
`
.my-carousel .v-item {
height: 36px;
line-height: 36px;
padding-left: 10px;
}
`
]
})
export class DemoCarouselLotteryComponent {
state = {
data: ['ring', 'ruby', 'iPhone', 'iPod', 'sorry', 'tourism', 'coke', 'ticket', 'note']
};
}
API
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
selectedIndex | 手动设置当前显示的索引 | number | 0 |
dots | 是否显示面板指示点 | Boolean | true |
vertical | 垂直显示 | Boolean | false |
autoplay | 是否自动切换 | Boolean | false |
autoplayInterval | 自动切换的时间间隔 | Number | 3000 |
infinite | 是否循环播放 | Boolean | false |
afterChange | 切换面板后的回调函数 | (current: number): void | 无 |
dotStyle | 指示点样式 | Object | 无 |
dotActiveStyle | 当前激活的指示点样式 | Object | 无 |
swipeSpeed | 滑动灵敏度 | number | 12 |
dragging | 是否允许滑动切换 | Boolean | (子元素大于1时为true, 否则为false) |