J'ai un site Web mobile, qui est construit comme une application d'une seule page. J'utilise angulaire pour créer un menu vertical, je veux masquer le menu sur l'élément de menu cliqué et afficher son conteneur de contenu avec un bouton de retour pour revenir au menu.
j'ai d'abord le composant principal avec le menu et le conteneur de contenu l'un à côté de l'autre
composant-principal.html
<div class="container">
<div class="col-md-3 col-12 menu-container">
<app-menu-container></app-menu-container>
</div>
<div class="col-md-9 col-12">
<app-content-container></app-content-container>
</div>
</div>
menu.component.html pour parcourir les éléments de menu et les afficher
<div *ngFor="let menuItem of menu">
<app-menu-item [menuItem]="menuItem"> </app-menu-item>
</div>
menuItem.component qui affiche chaque menuItem. lors des clics sur l'élément, un sujet se déclenchera pour ouvrir le composant de conteneur de contenu correspondant
dans le composant content-container, je me suis abonné pour obtenir l'élément pour ouvrir le conteneur de contenu content-container.component.ts
subscribeToOpenContainer() {
this.subscriptionToOpenContainer = this.menuService.openMenuItemContainer.subscribe((menuItem) => {
this.menuItem = menuItem;
}
);
}
conteneur-contenu.html
<ul>
<li>
<a class="document-type-icon"><i></i></a>
<div class="text-container">
<p class="document-name"></p>
<p class="last-update-date"> Last update date:</p>
<div class="line"></div>
</div>
<div class="action-icons-container">
<a class="delete-and-edit-icon"><i class="fa fa-trash"></i></a>
<a> <i class="fa fa-edit delete-and-edit-icon> </i>
</a>
</div>
</li>
<ul/>
Je souhaite que le menu qui est un composant unique soit masqué lorsqu'un élément de menu est actif et que le conteneur de contenu s'affiche avec un bouton de retour pour revenir au menu.
ce que je veux réaliser sur la taille de l'écran mobile
Ceci peut être réalisé en utilisant un simple ngIf si vous souhaitez masquer la barre latérale en cliquant sur le bouton. Si vous souhaitez masquer la barre latérale en cliquant n'importe où, vous pouvez utiliser HostListener .
@HostListener('click', ['$event'])onClick(event) { });
Vous pouvez obtenir l'identifiant de l'élément cliqué en utilisant event.target.id . Utilisez la logique if pour vérifier sur quel élément a été cliqué et ouvrez la barre latérale si elle n'est pas déjà ouverte, et si elle est ouverte, vous pouvez la masquer en ajoutant ou en supprimant simplement des css au DOM .
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots