简体   繁体   English

引导程序:我添加平滑滚动后,scrollspy不起作用

[英]Bootstrap: scrollspy doesn't work after I've added smooth scrolling

I'm building a site using Twitter Bootstrap, and I got the scrollspy to work, using the below javascript: 我正在使用Twitter Bootstrap构建网站,并且使用以下javascript可以使scrollspy正常工作:

$('body').scrollspy({ target: '.navbar' })

But it stopped working for me, after I add the script to enable smooth scrolling: 但是,在我添加了启用平滑滚动的脚本之后,它对我来说不再起作用:

<script type="text/javascript">
$(document).ready(function() {
  // navigation click actions 
  $('.scroll-link').on('click', function(event){
    event.preventDefault();
    var sectionID = $(this).attr("data-id");
    scrollToID('#' + sectionID, 750);
  });
  // scroll to top action
  $('.scroll-top').on('click', function(event) {
    event.preventDefault();
    $('html, body').animate({scrollTop:0}, 'slow');     
  });
  // mobile nav toggle
  $('.nav-toggle').on('click', function (event) {
    event.preventDefault();
    $('#bs-example-navbar-collapse-1').toggleClass("open");
  });
});
// scroll function
function scrollToID(id, speed){
  var offSet = 70;
  var targetOffset = $(id).offset().top - offSet;
  var mainNav = $('#bs-example-navbar-collapse-1');
  $('html,body').animate({scrollTop:targetOffset}, speed);
  if (mainNav.hasClass("open")) {
    mainNav.css("height", "1px").removeClass("in").addClass("collapse");
    mainNav.removeClass("open");
  }
}
if (typeof console === "undefined") {
    console = {
        log: function() { }
    };
}
</script>

I'm thinking I must have added the scrollspy in an incorrect position. 我在想我必须在错误的位置添加了scrollspy。 I have very little knowledge of javascript. 我对javascript的了解很少。 If someone can point me the way to inserting it in the correct order/space/line, that would be great! 如果有人可以指出正确的顺序/空格/行插入方式,那就太好了!

Thanks in advance! 提前致谢!

You may want to use a third party plugin such as jquery.localScroll (which relies on jquery.scrollTo). 您可能要使用第三方插件,例如jquery.localScroll(依赖于jquery.scrollTo)。 It provides great smooth scrolling and is easy to implement. 它提供了很好的平滑滚动,并且易于实现。 A lot easier than reimplementing the wheel. 比重新实现轮子容易得多。

https://github.com/flesler/jquery.localScroll https://github.com/flesler/jquery.localScroll

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

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