slideDown gwałtownie skacze na końcu
Zbudowałem dość normalny układ podmenu menu w kolumnie pionowej - zagnieżdżone UL, używającslideToggle
rozwinąć i zwinąć podmenu.
Problem, który próbuję rozwiązać, polega na tym, że podmenu „przeskakują” na samym końcu. (Testuję w najnowszej wersji Chrome.) Prawdopodobnie najbardziej zauważalne w drugim podmenu „Korzyści”. Nie przeskakuje, gdy menu się zwijają, tylko gdy się rozszerzają.
Myślałem, że problem może mieć coś wspólnego z:after
style dodawane tylko wtedy, gdy menu jest w pełni rozwinięte. W szczególności klasacurrent
jest dodawany do znacznika LI po pełnym rozwinięciu menu. Ale komentowanie kodu, który przełącza tę klasę, wydaje się nie mieć żadnego efektu.
http://jsfiddle.net/mblase75/5gGum/
JS:
$(document).ready(function() {
$('#group-subnav > ul > li > a').on('click', function(e) {
e.preventDefault();
var $li = $(this).closest('li');
$li.find('ul').slideToggle('', function() {
$li.toggleClass('current')
}).end().siblings().find('ul').slideUp('', function() {
$li.siblings().removeClass('current')
}).end();
});
});
CSS jest znaczący, a HTML nie jest niczym niezwykłym.