Как выделить карту bootstrap на клике? - PullRequest
1 голос
/ 21 января 2020

Я новичок в bootstrap. У нас есть несколько карточек, и мы хотим выделить карточку на клике. карты похожи на это -

<div class="container">
    <div class="row">
        <div class="card">
            <div class="card-header">Header</div>
            <div class="card-body text-dark">
                <h5 class="card-title">title</h5>
                <p class="card-text">Quick text</p>
            </div>
        </div>

        <div class="card">
            <div class="card-header">Header</div>
            <div class="card-body text-dark">
                <h5 class="card-title">title</h5>
                <p class="card-text">Quick text</p>
            </div>
        </div>
        <div class="card">
            <div class="card-header">Header</div>
            <div class="card-body text-dark">
                <h5 class="card-title">title</h5>
                <p class="card-text">Quick text</p>
            </div>
        </div>
    </div>
</div>

Мы хотим выделить карту на клике. как это сделать ?

Вот ссылка stackblitz .

Пожалуйста, руководство / Справка.

1 Ответ

1 голос
/ 21 января 2020

app.component. css:

.highlight {
  background-color: yellow;
}

app.component. html:

<div class="container">
    <div class="row">
        <div class="card" [ngClass]="{'highlight':checkIfCardIsClicked(1)}"
    (click)="setcurrentlyClickedCardIndex(1)">
            <div class="card-header">Header</div>
            <div class="card-body text-dark" >
                <h5 class="card-title">title</h5>
                <p class="card-text">Quick text</p>
            </div>
        </div>

        <div class="card" [ngClass]="{'highlight':checkIfCardIsClicked(2)}" 
    (click)="setcurrentlyClickedCardIndex(2)">
            <div class="card-header">Header</div>
            <div class="card-body text-dark">
                <h5 class="card-title">title</h5>
                <p class="card-text">Quick text</p>
            </div>
        </div>
        <div class="card" [ngClass]="{'highlight':checkIfCardIsClicked(3)}"
    (click)="setcurrentlyClickedCardIndex(3)">
            <div class="card-header">Header</div>
            <div class="card-body text-dark">
                <h5 class="card-title">title</h5>
                <p class="card-text">Quick text</p>
            </div>
        </div>

    </div>
</div>

app.component.ts:

import { Component } from "@angular/core";

@Component({
  selector: "my-app",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.css"]
})
export class AppComponent {
  name = "Angular";

  public currentlyClickedCardIndex: number = 0;

  public setcurrentlyClickedCardIndex(cardIndex: number): void {
    this.currentlyClickedCardIndex = cardIndex;
  }

  public checkIfCardIsClicked(cardIndex: number): boolean {
    return cardIndex === this.currentlyClickedCardIndex;
  }
}

Мое решение запоминает индекс последней нажатой карты, чтобы выделить только эту. I

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...