【问题标题】:Bootstrap: scrollspy doesn't work after I've added smooth scrollingBootstrap:在我添加平滑滚动后,scrollspy 不起作用
【发布时间】:2014-03-10 07:10:21
【问题描述】:

我正在使用 Twitter Bootstrap 构建一个网站,并使用以下 javascript 让 scrollspy 工作:

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

但在我添加脚本以启用平滑滚动后,它不再为我工作了:

<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>

我想我一定是在不正确的位置添加了卷轴间谍。我对javascript知之甚少。如果有人能指出以正确的顺序/空格/行插入它的方法,那就太好了!

提前致谢!

【问题讨论】:

    标签: javascript twitter-bootstrap smooth-scrolling scrollspy


    【解决方案1】:

    您可能想要使用第三方插件,例如 jquery.localScroll(它依赖于 jquery.scrollTo)。它提供了非常流畅的滚动并且易于实现。比重新实现轮子要容易得多。

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

    【讨论】:

    • 谢谢特洛伊。也许我读错了 localScroll。但我不仅需要它平滑滚动,我还需要在页面滚动到时突出显示我的主要导航链接(位于固定位置)。现在,我既可以平滑滚动,也可以使用 scrollspy。但我不能将它们结合起来,这样两者都可以工作。是否可以在 javascript 中组合这两个脚本?我刚刚开始,在涉及 javascript/jquery 时我完全没用。任何进一步的帮助将不胜感激!谢谢!
    • 我有几个网站同时使用 scroll spy 和 localScroll,并且没有冲突。当人们点击导航栏链接时,我得到了静态导航栏的突出显示和平滑滚动。您还可以将 localScroll 定位到仅在文档的一部分中的链接(即您的导航栏)。只需确保在 jquery.LocalScroll 之前包含 jquery.scrollTo。
    猜你喜欢
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多