Bootstrap 3 Dropdown Slidedown Seltsames Verhalten beim Zusammenbruch der Navbar

So habe ich einige Animationen zu den Navigationsleisten-Dropdowns hinzugefügt, aber aus irgendeinem Grund die am meisten akzeptierte Antwort Hinzufügen eines Slide-Effekts zum Bootstrap-Dropdown) scheint zu brechen oder "normal" zu werden, wenn Sie auf kleinen Fenstern nach oben rutschen.

So ist die seltsame Sache, dass dies nur mit der slideUp-Animation aus dem Artikel passiert:

// ADD SLIDEDOWN ANIMATION TO DROPDOWN //
$('.dropdown').on('show.bs.dropdown', function(e){
  $(this).find('.dropdown-menu').first().stop(true, true).slideDown(5000);
});

// ADD SLIDEUP ANIMATION TO DROPDOWN //
$('.dropdown').on('hide.bs.dropdown', function(e){
  $(this).find('.dropdown-menu').first().stop(true, true).slideUp(5000);
});

Ich kann diese Zeilen kopieren und auf @ in die Google Chrome-Konsole einfügehttp: //bootswatch.com/default, ändere meine Auflösung in eine, bei der die Navigationsleisten zusammenbrechen und alle brechen. (Ich habe die Animationszeiten verlängert, um Fehler zu beheben.)

Normal

Broken SlideUp:

Aber aus irgendeinem Grund, wenn ich @ lauf$('.navbar').find('.dropdown-menu').slideUp(5000); Ich erhalte ein normales Menü:

Gedanken

Aktualisiere Dies funktioniert mit der letzten Option, da dadurch die Klasse 'open' nicht aus dem einschließenden Dropdown-LI-Element entfernt wird. Also vielleicht dasopen class wird vorzeitig entfernt, während die Animation ausgeführt wird.

Update 2 Ich kann das Problem mit preventDefault beheben:

// ADD SLIDEUP ANIMATION TO DROPDOWN //
$('.dropdown').on('hide.bs.dropdown', function(e){
  e.preventDefault();
  $(this).find('.dropdown-menu').first().stop(true, true).slideUp(300, function(){
    $(this).parent().removeClass('open');
  });
});

Antworten auf die Frage(2)

Ihre Antwort auf die Frage