2

我正在使用 Scrollspy 的 Jquery 独立实现。我在这里有一个关于我的问题的 jsfiddle 示例:http: //jsfiddle.net/2acyu/66/

当页面向下滚动浏览 3 个部分时,顶部导航链接会突出显示。

工作正常!

我的问题是我想要一些可以切换的隐藏元素。当显示一些额外的内容并且其中一个部分被展开时,它会抛出 scrollspy。尝试展开隐藏的文本,然后向下滚动。由于容器 div 的偏移值已更改,因此在此部分到达页面顶部之前,文本 2 的链接会突出显示。

scrollSpy 的 Bootstrap 版本有一个“刷新”方法,当添加/更改 DOM 中的元素以修复这种情况时,可以调用该方法。但是,我使用的独立 JQuery 版本的 Scrollspy 没有。

另一个网站上的某人建议使用:

$(window).unbind("scroll");

然后重新创建小部件。

但我不确定如何实施此修复程序。

任何帮助表示赞赏。

4

1 回答 1

3

我有一种情况,我有一个固定大小的可滚动 div,我希望里面的内容随着用户向下滚动而动态增长。解决问题的关键是查看 scrollspy 源代码并确定最小/最大设置可以是函数,而不仅仅是静态值。因此,我将最小/最大设置设置为根据增长内容的当前大小返回值的函数。这样,当用户滚动时,内容会增长,并且 scrollspy 最小/最大设置会适当调整。

$('.locked-size-container').scrollspy({
  min: function () { 
      // Adjust the 'enter' start position according to the container size
      return ($('.dynamic-size-container').height() / 3);
  },
  max: function () {
    // Adjust the 'enter' end position according to the container size
      return $('.dynamic-size-container').height();
  },
  container: $('.locked-size-container')[0],
  onEnter: function() {          
      console.log('loading new content...');
      ...
  }
});
于 2013-10-09T20:24:56.000 回答