Jquery Scrollspy需要刷新功能

时间:2013-09-20 11:08:27

标签: jquery refresh scrollspy

我正在使用Scrolllspy的Jquery standalaone实现。 我在这里有一个问题的例子:http://jsfiddle.net/2acyu/66/

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

工作正常!

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

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

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

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

然后重新创建小部件。

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

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:3)

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

$('.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...');
      ...
  }
});