J'utilise des matériaux angulaires et angulaires pour un projet. Étant donné que la conception de ce projet est basée sur le matériau, j'utilise un matériau angulaire pour ses composants.
J'ai créé une barre d'outils via
et une liste d'onglets via mat-tab-group
. Et la page se présente comme suit:
Tout va bien. Le premier onglet contient également une liste Et c'est là que le problème commence ..
Lorsque vous faites normalement défiler la liste, selon la Material Design :
la barre du haut doit défiler et les onglets doivent être en haut. Ce n'est pas le comportement standard du matériau angulaire et je me demande s'il est possible de recréer?
J'ai recréé le comportement par défaut dans un stackblitz .
7.2.6
7.3.3
3 Réponses :
À l'aide de votre stackblitz , Ajoutez ceci à votre app.component.ts Ajoutez ceci à votre styles.css la clé de l'effet que vous recherchez est `.mat-tab-group {height: 100%; position: fixed;} ... mais vous verrez que le mat-group sera plus court que la mat-toolbar qui a l'air un peu moche ... donc nous les avons mis tous les deux à la même largeur ... mais maintenant nous avons un autre problème, le la marge est bizarre, c'est parce que le corps est défini sur une marge de 8px, donc finalement nous remplaçons le nombre absolu 8px par 1vw ... donc ça a l'air joli. J'espère que cela répond à votre question. body { margin:1vw !important; }
.mat-tab-group{height: 100%;position: fixed; width:98vw;}
.mat-toolbar.mat-primary { width:98vw; }
Bonjour Akaber, c'est presque ce que je recherche, le résultat de vos modifications: stackblitz.com/edit/ angular-jcydhx Mais cela rend la barre d'outils et les onglets fixés en haut, où la barre d'outils devrait défiler lorsque la liste est déroulée vers le bas, où les onglets devraient défiler vers le haut et rester là (voir l'effet ici : material.io/design/components/tabs.html#behavior , dans la section 'défilement')
une fois que l'utilisateur fait défiler vers le bas de plus de 104px (hauteur de mat-toolbar et mat-group), nous devons faire: .mat-toolbar {display: none; }
Nous pourrions avoir besoin de plus d’aide sur votre commentaire ici, à la recherche de la communauté pour nous aider stackoverflow.com/questions/55015895/...
Je suis un peu confus au sujet de votre problème, mais si vous voulez coller l'en-tête de l'onglet en haut lorsqu'il défile vers le bas.
Ajoutez le code ci-dessous à votre stackblitz Fichier CSS. Celles-ci peuvent certainement fonctionner.
.mat-tab-group .mat-tab-header { position: sticky; top:0; }
Merci pour votre réponse, mais cela ne réalise pas ce que je veux. J'ai amélioré ma question, peut-être que cela clarifie mieux ma question.