Угловые анимации: div входит за другим div

Я пытаюсь сделать простую вещь в своем приложении Angular 7.

По сути, у меня есть заголовок, и когда я нажимаю на него, комментарий ease-in сверху размещается прямо под заголовком. Проблема в том, что когда комментарий перемещается, это отображается над заголовком не совсем тот эффект, который хотелось бы получить.

Я попытался добавить свойство z-index в CSS, чтобы поднять заголовок, но безрезультатно.

app.component.ts

import { Component } from '@angular/core';
import { trigger, transition, style, animate } from '@angular/animations';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ],
  animations: [
    trigger('slideInOut', [
      transition(':enter', [
        style({transform: 'translateY(-100%)'}),
        animate('200ms ease-in', style({transform: 'translateY(0%)'}))
      ]),
      transition(':leave', [
        animate('200ms ease-in', style({transform: 'translateY(-100%)'}))
      ])
    ])
  ]
})
export class AppComponent  {
  visible = false;

  showMessage() {
    this.visible = !this.visible;
  }
}

app.component.html

<div (click) = "showMessage()">
    <div class = "title">Click here to reveal the comment</div>
    <div class = "title">25/04/2019 17:30:00</div>
    <div class = "comment" *ngIf = "visible" [@slideInOut]>Lorem ipsum...</div>
</div>

app.component.css

.title {
  background-color: aqua;
  z-index: 1000;
  cursor: pointer;
}

.comment {
  background-color: red;
  z-index: 0;
}

Я создал StackBlitz, чтобы показать проблему.

Спасибо за вашу помощь!

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
739
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Для работы z-индекса. Вам нужно добавить position: relative или absolute к элементу. В вашем случае добавьте также position: relative к .title.

Вы можете добавить следующее:

.title, .comment{
  position:relative;
}

z-index работает только с позиционированными элементами (позиция: абсолютная, позиция: относительная, позиция: фиксированная или позиция: фиксированная).

См. Вилка

Другие вопросы по теме