CSS для отображения: нет при анимации складного контейнераCSS

Разбираемся в CSS
Ответить
Anonymous
 CSS для отображения: нет при анимации складного контейнера

Сообщение Anonymous »

У меня есть анимированная складная навигация. Я не хочу, чтобы контент отображался во время его расширения или сжатия, потому что рендеринг/повторный рендеринг во время анимации требует больших затрат (это вызывает задержку рендеринга, а непрозрачности/видимости недостаточно). Другими словами, он должен отображаться display:none, пока навигация анимируется/сворачивается.
Я могу добиться этого с помощью setTimeout() в JavaScript, но мне интересно, есть ли чистое решение этой проблемы на CSS (может быть, с помощью перехода-поведения:allow-discrete?)
Вот мое решение на JavaScript:

Код: Выделить всё

document.querySelector("header").addEventListener("click", () => {
document.querySelector("nav").toggleAttribute("opened");

if (document.querySelector("div").hasAttribute("displayed")) {
document.querySelector("div").toggleAttribute("displayed");
} else {
setTimeout(() => document.querySelector("div").toggleAttribute("displayed"), 500);
}
});

Код: Выделить всё

nav {
background: grey;
display: flex;
flex-direction: column;
height: 20px;
transition: height 0.5s;
width: 500px;
}

nav[opened] {
height: 200px;
}

header {
background: blue;
height: 20px;
}

div {
background: red;
display: none;
flex: 1;
}

div[displayed] {
display: block;
}



Подробнее здесь: https://stackoverflow.com/questions/798 ... -container
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «CSS»