我正在使用Scrolllspy的Jquery standalaone实现。 我在这里有一个问题的例子:http://jsfiddle.net/2acyu/66/
当页面向下滚动到3个部分时,顶部导航链接会突出显示。
工作正常!
我的问题是我想要一些可以切换的隐藏元素。当显示一些其他内容并且其中一个部分被展开时,它会抛出scrollspy。尝试扩展隐藏文本,然后向下滚动。由于容器div的偏移值已更改,因此在此部分到达页面顶部之前突出显示文本2的链接。
scrollSprap的bootstrap版本有一个“刷新”方法,当添加/更改DOM中的元素以修复这种情况时,可以调用该方法。但是我使用的独立JQuery版本的Scrollspy却没有。
另一个网站上有人建议使用:
$(window).unbind("scroll");
然后重新创建小部件。
但我不确定如何实施此修复程序。
任何帮助表示感谢。
答案 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...');
...
}
});