Я не часто сталкиваюсь с проблемами CSS, но это заставляет меня почесать голову.
В этом плагине http://plnkr.co/i2Fxol все работает точно так, как ожидалось, во всех браузерах, с за исключением IE10 и 11, а также Edge полностью не может применять переходы css к некоторым элементам, а не ко всем. И сколько бы я ни смотрел на него, я не могу понять, почему он не работает именно в этих местах. (здесь добавлен CSS, но его нужно рассматривать в контексте, так как это очень упрощенное представление)
#navigation ul {
display: block;
list-style: none;
overflow: hidden;
transition: all .2s ease;
}
По сути, они рыгают, когда аккордеон открыт, а меню можно расширять и сжимать за заявленные 0,2 секунды. Все остальные переходы работают.
О, теперь я собираюсь добавить закрытие путей svg в HTML5 только для того, чтобы удалить эти совершенно бессмысленные предупреждения в IE и Edge.
редактировать
Начальные высоты для гармошек набираются под нагрузкой так:
...
var initialHeights = document.getElementsByClassName("level-1");
var values = [];
for(var i = 0; initialHeights.length > i; i++){
values.push(initialHeights[i].offsetHeight);
}
...
Затем они обнуляются встроенными значениями, которые безопасно хранятся в массиве, используя:
function toZero(){
for(i = 0; mainSubMenus.length > i; i++){
mainSubMenus[i].setAttribute("style", "height:0;");
}
}
toZero();
Это позволяет использовать css для перехода между нулевой высотой и известным значением.
головной мозг
Я подумал, что, может быть, следующее излечит больных:
mainSubMenus[i].style.height = 0;
Я был неправ.
display: none
доdisplay: block
? - person Ason   schedule 27.07.2016