У меня возникли проблемы с созданием всплывающего меню с определенным эффектом. Всплывающее окно выводится с экрана: никто не блокирует, а затем я использую jquery для анимации непрозрачности от 0 до 1 (и наоборот). Это необходимо, потому что в противном случае переход не произойдет, когда элемент просто изменил свойство отображения. Я не думал, что это будет распространяться на детей. Но внутри моего вылета у меня есть 4 столбца ссылок, у которых есть переход прозрачности, каждый со своей собственной задержкой, поэтому они входят в один за раз. Однако это не работает, когда появляется всплывающее окно. Они мгновенно на непрозрачность: 1 и даже с большим временем задержки все еще не работают.
Есть ли способ обойти это? Я знал, что анимация CSS наряду с изменением отображения на одном и том же элементе не работает, но выяснение того, что любые дочерние анимации также не работают, немного расстраивает. Я бы предпочел не писать javascript, когда CSS так прост. Но если javascript - единственный ответ, тогда это будет легко решить.
Здесь очень упрощенный пример кода:
$flyout.addClass('in').animate({opacity: 1}, 200, "linear");
"in" - это класс, который вызывает переход по столбцам:
.flyout { display: none; }
.flyout.in { display: block; }
.columns li {
opacity: 0;
-webkit-transition: opacity 0.2s;
}
.flyout.in .columns li { opacity: 1; }
// delay increases with each column
.columns > li:first-child {
-webkit-transition-delay: 0.2s;
}