IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Angular Discussion :

[Angular 5] Appliquer une animation au sein d'une boucle


Sujet :

Angular

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut [Angular 5] Appliquer une animation au sein d'une boucle
    bonsoir,

    dans un boucle je montre une image, et je mets à disposition d'un bouton qui va permettre d'afficher
    la composition de cette image, voici le script:

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div class="produit" *ngFor="let p of produit,let i = index">
      <div class="tactile" (click)="basculeShowComposition()">tactile</div>
      <div class="composition" [@tactilComposition]="showComposition" >{{p.composition}}</div>
      <img [src]="p.img" (mouseover)=" fctMouseOver($event,this)" (mouseout)="fctMouseOut($event)" data-over="">
     
    </div>

    la div où il y a "tactile" c'est le bouton qui va montrer un texte caché
    la div où il y a "composition" est le texte caché

    voici mon décorateur qui possède un trigger qui va en fonction du clique cacher ou montrer la composition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    @Component({
      selector: 'app-produit',
      templateUrl: './produit.component.html',
      styleUrls: ['./produit.component.css'],
      encapsulation: ViewEncapsulation.None,
      animations:[
        trigger('tactilComposition',[
          state('show',style({
            opacity:1
          })),
          state('hide',style({
            opacity:0
          })),
        ])
      ]
    })
    voici la classe de ce composant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    export class ProduitComponent implements OnInit {
     
      @Input() produit;
     
      montreComposition = false;
     
      get showComposition(){
        return this.montreComposition ? 'show':'hide';
      }
     
      basculeShowComposition(){
        console.log("montre ingredient");
        this.montreComposition = !this.montreComposition;
      }
    a chaque clique sur "tactile" j'appelle la méthode basculeShowComposition() qui caché ou montre la composition.

    Pour le moment mon script fonctionne pour toute les compositions(puisqu'on est dans une boucle), comment faire pour qu'on puisse demander uniquement le tactile courant et pas tout caché ou tout montrer ?

    doit-je m'aider de l'index pour arrive à mes fins ?

    si vous avez une suggestion, merci d'avance pour la réponse

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="produit" *ngFor="let p of produit,let i = index">

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    j'ai trouvé une solution, mais je ne peux profiter du trigger ...
    envoyer l'index au component et faire un ngIF
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div class="produit" *ngFor="let p of produit,let i = index">
      <div class="tactile" (click)="basculeShowComposition(i)">tactile</div>
      <div *ngIf="idCourantClickIngredient==i" [ngStyle]="couleurStyle" class="composition" [@tactilComposition]="showComposition" >{{p.composition}}</div>
      <img [src]="p.img" (mouseover)=" fctMouseOver($event,this)" (mouseout)="fctMouseOut($event)" data-over="">
      <div class="infoProduit">
        <p>{{p.nom}}</p>
        <p> {{p.prix}} Euro</p>
      </div>
    </div>

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/04/2014, 15h58
  2. [HTML] Une DIV au dessus d’une animation flash
    Par fadex dans le forum Flash
    Réponses: 12
    Dernier message: 17/04/2008, 17h02
  3. Tester une valeur au sein d'une table
    Par titof90 dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/06/2007, 08h59
  4. L'affichage d'une photo au sein d'une page jsp
    Par debutantjak dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 10/05/2006, 17h11
  5. Insertion d'une Condition au sein d'une requete
    Par Redouane dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 02/02/2006, 10h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo