Javascript Bootstramp模板jquery动画错误

Javascript Bootstramp模板jquery动画错误,javascript,jquery,html,css,twitter-bootstrap,Javascript,Jquery,Html,Css,Twitter Bootstrap,我在我的网站上使用了这个模板 但是,当你点击菜单选项时,动画菜单会变得杂乱无章 单击链接后,页面将在错误位置闪烁,然后显示动画 我怀疑问题出在以下代码片段中: /* smooth scrolling for nav sections */ $('#nav .navbar-nav li>a').click(function(){ var link = $(this).attr('href'); var posi = $(link).offset().top+20; $('body

我在我的网站上使用了这个模板 但是,当你点击菜单选项时,动画菜单会变得杂乱无章

单击链接后,页面将在错误位置闪烁,然后显示动画

我怀疑问题出在以下代码片段中:

/* smooth scrolling for nav sections */
$('#nav .navbar-nav li>a').click(function(){
  var link = $(this).attr('href');
  var posi = $(link).offset().top+20;
  $('body,html').animate({scrollTop:posi},700);
})

此代码需要使用两次单击之间的延迟或其他方法来改进动画?

错误来自滚动时激活的ScrollSpy。 添加类间谍激活

切换间谍激活时滚动。请记住手动调整li元素上的活动类


bootply:

我在这段代码中发现了bug

你需要使用

  e.preventDefault();
禁用节的默认用法。 正确代码:

$('#nav .navbar-nav li>a').click(function(e){
  var link = $(this).attr('href');
  var posi = $(link).offset().top;
  e.preventDefault();
  $('body,html').animate({scrollTop:posi},700);
});
/* smooth scrolling for nav sections */
$('#nav .navbar-nav li>a').click(function(){
  $("#nav").removeClass("spy-activated");
  $(this).parent().siblings().each( function(){ $(this).removeClass("active"); });
  $(this).parent().addClass("active");
  var link = $(this).attr('href');
  var posi = $(link).offset().top+20;
  $('body,html').animate({scrollTop:posi},700, function(){
     $("#nav").addClass("spy-activated");
  });
})
  e.preventDefault();
$('#nav .navbar-nav li>a').click(function(e){
  var link = $(this).attr('href');
  var posi = $(link).offset().top;
  e.preventDefault();
  $('body,html').animate({scrollTop:posi},700);
});