Saya jarang mengalami masalah CSS, namun hal ini membuat saya bingung.
Dalam http://plnkr.co/i2Fxol ini, semuanya berfungsi persis seperti yang diharapkan di semua browser, dengan pengecualian IE10 dan 11 dan Edge sepenuhnya gagal menerapkan transisi css ke elemen beberapa, tidak semua. Dan tidak peduli seberapa sering saya melihatnya, saya tidak mengerti mengapa ia gagal di tempat-tempat tertentu. (CSS ditambahkan di sini tetapi perlu dilihat dalam konteksnya karena ini adalah tampilan yang sangat sederhana)
#navigation ul {
display: block;
list-style: none;
overflow: hidden;
transition: all .2s ease;
}
Pada dasarnya, mereka bersendawa ketika akordeon terbuka dan menu tersedia untuk diperluas dan dikontrak dalam 0,2 detik yang disebutkan. Semua transisi lainnya berfungsi.
Oh, dan sekarang ada cara saya menambahkan penutupan ke jalur svg dalam HTML5 hanya untuk menghapus peringatan yang sama sekali tidak berguna di IE dan Edge.
sunting
Ketinggian awal akordeon dikumpulkan berdasarkan beban dengan ini:
...
var initialHeights = document.getElementsByClassName("level-1");
var values = [];
for(var i = 0; initialHeights.length > i; i++){
values.push(initialHeights[i].offsetHeight);
}
...
Mereka kemudian di-zero-kan sejalan dengan nilai-nilai yang disimpan dengan aman dalam array menggunakan:
function toZero(){
for(i = 0; mainSubMenus.length > i; i++){
mainSubMenus[i].setAttribute("style", "height:0;");
}
}
toZero();
Hal ini memungkinkan penggunaan css untuk transisi antara ketinggian nol dan nilai yang diketahui.
otak kentut
Saya pikir mungkin hal berikut ini bisa menyembuhkan orang sakit:
mainSubMenus[i].style.height = 0;
Saya salah.
display: none
hinggadisplay: block
? - person Ason   schedule 27.07.2016