Я знаю, что опаздываю на вечеринку, но я нашел этот вопрос, когда испытывал эту самую проблему, и комментарий Гэвина НЕ решил мою проблему (и при этом не выглядел бы корректно с данным дизайном).
Пока я бился головой о стену, так как это работало должным образом во всех браузерах , за исключением IOS Safari, я наконец-то обнаружил виновника в МОЕМ случае:
неуместный z-index
тег.
Вот "облегченная" версия моего кода:
<div class="children"> <!-- this is the container, which is the target of a jQuery slideDown() -->
<ul> <!-- this element would "pop" outside of the container after animation completed -->
<li><a href="#">Menu Item 1</a><li>
<li><a href="#">Menu Item 2</a><li>
<li><a href="#">Menu Item 3</a><li>
</ul>
</div>
Изначально я применил z-index: 3000;
к элементу <ul>
.
После того, как я удалил его из ul и переместил в элемент <div class="children">
, мои проблемы исчезли, и ul остался на том же месте, что и после анимации.