你如何在 Angular2 中设置动态轮播指示器?
How do you set dynamic Carousel Indicators in Angular2?
我只能移动到一张幻灯片,然后“下一张”和“上一张”不起作用。而且我也无法点击指标来移动幻灯片。
但是当我用 class carousel-indicators
删除 div 时,“下一个”和“上一个”工作没有任何问题,我就是无法让它与指标一起工作。
到目前为止我做了什么:
<div style="background-color: black;">
<div id="carouselExampleCaptions" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-indicators">
<button type="button" data-bs-target="#carouselExampleCaptions" *ngFor="show of anime; let i = index"
[attr.data-slide-to]="i" [ngClass]="{'active' : i == 0}" aria-current="true" aria-label="Slide 1"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item" *ngFor="let show of anime; let i = index" [ngClass]="{'active': i === 0}">
<img src="{{show.img}}" class="d-block w-100" alt="...">
<div class="carousel-caption d-none d-md-block">
<h5>{{show.title}}</h5>
<p>{{show.description}}</p>
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
</div>
TS 文件:
anime = [
{
img:
'https://www.ft.com/__origami/service/image/v2/images/raw/https%253A%252F%252Fs3-ap-northeast-1.amazonaws.com%252Fpsh-ex-ftnikkei-3937bb4%252Fimages%252F5%252F3%252F5%252F8%252F28668535-1-eng-GB%252F%25E3%2582%25BD%25E3%2583%258B%25E3%2583%25BC%25E4%25B8%258A%25EF%25BC%2589%25E8%25BF%25BD%25E5%258A%25A0%25E3%2580%2580%25E9%25AC%25BC%25E6%25BB%2585%25E3%2581%25AE%25E5%2588%258320200805183428557_Data.jpg?width=700&fit=cover&gravity=faces&dpr=2&quality=medium&source=nar-cms',
title: 'Demon Slayer',
description: 'Demon Slayer description',
},
{
img:
'https://okuha.com/wp-content/uploads/2020/01/What_is_anime_art_feature_image.jpg',
title: 'One Piece',
description: 'One Piece description',
},
{
img:
'https://www.lifewire.com/thmb/yc8DN9SND5G8YkCNLYr6qv80Qz4=/650x0/filters:no_upscale():max_bytes(150000):strip_icc():format(webp)/anime-pokemon-5a191e1789eacc00372449e8-512c78337fbe42b2b6cd6280bb7a23f6.jpg',
title: 'Pokemon',
description: 'Pokemon description',
},
];
我该怎么做才能让它发挥作用?
我是这样做的:
<div id="carouselExampleCaptions" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-indicators">
<button type="button" data-bs-target="#carouselExampleCaptions" *ngFor="show of anime; let i = index"
[attr.data-bs-slide-to]="i" [ngClass]="{i == 0? 'active': ''}" aria-current="true" [attr.aria-label]="'Slide-' + i + 1"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item" *ngFor="let show of anime; let i = index" [ngClass]="{'i == 0? 'active': ''}">
<img src="{{show.img}}" class="d-block w-100" alt="no image here">
<div class="carousel-caption d-none d-md-block">
<h5>{{show.title}}</h5>
<p>{{show.description}}</p>
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
我只能移动到一张幻灯片,然后“下一张”和“上一张”不起作用。而且我也无法点击指标来移动幻灯片。
但是当我用 class carousel-indicators
删除 div 时,“下一个”和“上一个”工作没有任何问题,我就是无法让它与指标一起工作。
到目前为止我做了什么:
<div style="background-color: black;">
<div id="carouselExampleCaptions" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-indicators">
<button type="button" data-bs-target="#carouselExampleCaptions" *ngFor="show of anime; let i = index"
[attr.data-slide-to]="i" [ngClass]="{'active' : i == 0}" aria-current="true" aria-label="Slide 1"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item" *ngFor="let show of anime; let i = index" [ngClass]="{'active': i === 0}">
<img src="{{show.img}}" class="d-block w-100" alt="...">
<div class="carousel-caption d-none d-md-block">
<h5>{{show.title}}</h5>
<p>{{show.description}}</p>
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
</div>
TS 文件:
anime = [
{
img:
'https://www.ft.com/__origami/service/image/v2/images/raw/https%253A%252F%252Fs3-ap-northeast-1.amazonaws.com%252Fpsh-ex-ftnikkei-3937bb4%252Fimages%252F5%252F3%252F5%252F8%252F28668535-1-eng-GB%252F%25E3%2582%25BD%25E3%2583%258B%25E3%2583%25BC%25E4%25B8%258A%25EF%25BC%2589%25E8%25BF%25BD%25E5%258A%25A0%25E3%2580%2580%25E9%25AC%25BC%25E6%25BB%2585%25E3%2581%25AE%25E5%2588%258320200805183428557_Data.jpg?width=700&fit=cover&gravity=faces&dpr=2&quality=medium&source=nar-cms',
title: 'Demon Slayer',
description: 'Demon Slayer description',
},
{
img:
'https://okuha.com/wp-content/uploads/2020/01/What_is_anime_art_feature_image.jpg',
title: 'One Piece',
description: 'One Piece description',
},
{
img:
'https://www.lifewire.com/thmb/yc8DN9SND5G8YkCNLYr6qv80Qz4=/650x0/filters:no_upscale():max_bytes(150000):strip_icc():format(webp)/anime-pokemon-5a191e1789eacc00372449e8-512c78337fbe42b2b6cd6280bb7a23f6.jpg',
title: 'Pokemon',
description: 'Pokemon description',
},
];
我该怎么做才能让它发挥作用?
我是这样做的:
<div id="carouselExampleCaptions" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-indicators">
<button type="button" data-bs-target="#carouselExampleCaptions" *ngFor="show of anime; let i = index"
[attr.data-bs-slide-to]="i" [ngClass]="{i == 0? 'active': ''}" aria-current="true" [attr.aria-label]="'Slide-' + i + 1"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item" *ngFor="let show of anime; let i = index" [ngClass]="{'i == 0? 'active': ''}">
<img src="{{show.img}}" class="d-block w-100" alt="no image here">
<div class="carousel-caption d-none d-md-block">
<h5>{{show.title}}</h5>
<p>{{show.description}}</p>
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>