所以我在navbar下拉列表中添加了一些动画,但由于某些原因,最常接受的答案(Adding a slide effect to bootstrap dropdown)在小窗口大小上滑动时似乎破坏或变为“常规”大小。Bootstrap 3 Dropdown Sliderown当Navbar崩溃时的奇怪行为
因此,奇怪的是这似乎只与文章的效果基本show动画发布到发生:
// 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);
});
我可以复制和粘贴http://bootswatch.com/default/这些线路到谷歌Chrome浏览器的控制台,改变我的决议案,一个地方导航仪崩溃了,它们全部破裂。 (我延长动画时间,试图解决。)
正常:
破碎效果基本show:
但由于某些原因,如果我跑$('.navbar').find('.dropdown-menu').slideUp(5000);
我得到一个正常的行为菜单:
想法?
更新它与最后一个选项一起工作,因为它不会从封闭下拉LI元素中移除'open'类。所以在动画运行时,open
类可能会被过早删除。
更新2我可以使用的preventDefault八九不离十修复:
// 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');
});
});
我也看到一个动画神器上了slideDown()为好。它似乎跳到最后。我相信这也与“开放”类有关。 – 2014-10-08 22:25:41
我试过你的上面的解决方案,它似乎对我来说很好,使'.slideUp'动画像'.slideDown'一样无缝工作。这就是说我没有使用Bootswatch。 – Vercingetorix 2014-10-10 19:39:22
您是否在谈论我的Update 2中的解决方案?它似乎工作,但我觉得这个bug是在bootstrap.js不等待过渡。合拢的导航栏动画工作完美无瑕,但编码与下拉菜单的编码方式完全不同。 – 2014-10-10 19:45:35