繁体   English   中英

使slideUp和slideDown在引导导航栏上工作

[英]make slideUp and slideDown work on bootstrap navbar

我希望jQuery的slideUpslideDown方法在bootstrap的导航栏上可以正常工作。 但正如我测试它,当slideUp涂布方法,导航栏仅向上滑动仅其小部分,然后立即消失,相同的去slideDown ,仅在相反方向上。 为什么会发生这种情况,以及如何使动画顺利运行?

片段如下。

 $('.slideUpBtn').click(function() { $('nav').slideUp("slow"); }); $('.slideDownBtn').click(function() { $('nav').slideDown("slow"); }); 
 .slideUpBtn { position: fixed; left: 0; bottom: 0; } .slideDownBtn { position: fixed; right: 0; bottom: 0; } 
 <html> <head> <title>temp</title> <script src="https://code.jquery.com/jquery-2.2.2.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" /> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> </head> <body> <nav class="navbar navbar-default"> <div class="container-fluid"> <div class="navbar-header"><a href="#" class="navbar-brand">Brand</a> </div> </div> </nav> <button type="button" onclick="slideUp_event()" class="slideUpBtn">slideUp</button> <button type="button" onclick="slideDown_event()" class="slideDownBtn">slideDown</button> </body> </html> 

发生这种情况是因为nav元素具有CSS属性“ min-height:50px;”。 从navbar类以及方法slideUp和slideDown可以增加和减少height属性,因此当height低于min-height时,它将被忽略。

您可以按以下方式覆盖最小高度或更改按钮功能:

 $('.slideUpBtn').click(function() {
   var minHeight = $('nav').css('min-height');
   $('nav').css('min-height',0);
   $('nav').slideUp("slow", function(){
            $('nav').css('min-height', minHeight);
    });
});
$('.slideDownBtn').click(function() {
     var minHeight = $('nav').css('min-height');
   $('nav').css('min-height',0);
  $('nav').slideDown("slow", function(){
            $('nav').css('min-height', minHeight);
    });
});

.navbar类的min-height50px 您应该将其删除。

.navbar{
  min-height:0;
}

的jsfiddle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM