telnov_magic
@telnov_magic
Между небом и омутом, между серпом и молотом

Как сделать анимацию закрытия модального окна?

Здравствуйте, столкнулся с проблемой, что не знаю как сделать анимацию закрытия модального окна

const Modal = props => {
    const modal = (
        <div
            className={classnames("modal", "visible", "fadeIn")}
            onClick={() => props.setModalHidden()}
        >
            <div
                className={classnames("modal__window", "zoomIn")}
                style={{ backgroundColor: props.currentBackgroundColor }}
            >
                <p
                    onClick={() => props.setModalHidden()}
                    className="modal__close"
                >
                    &#10006;
                </p>
                <p style={{ color: props.currentTextColor }}>
                    Текущий цвет фона: {props.currentBackgroundColor}
                </p>
            </div>
        </div>
    );

    return props.isModalOpened ? modal : <></>;
};

есть вот такой код. При клике на кнопку окно открывается и срабатывают написанные анимации. А как можно доработать код так, чтобы окно сперва становилось прозрачным, а затем исчезало?
  • Вопрос задан
  • 391 просмотр
Решения вопроса 1
hzzzzl
@hzzzzl
const fadeoutModal = () => {
  // через useState или еще как-то убираем класс visible
  // чтобы произошла анимация

  // когда анимация закончится, тогда убираем модал в родительском компоненте
  setTimeout( props.setModalHidden, 300 )
}

.....


<div
            className={classnames("modal", "visible", "fadeIn")}
            onClick={fadeoutModal}
        >
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы