我们在侧边栏 ul/il 列表上使用 twitter bootstrap scrollspy,效果很好。但是,在单击侧边栏中的链接时,我们也会使用平滑滚动。这会导致 scrollspy 突出显示进入视图的每个元素,就像在正常情况下一样。
但是,当通过单击侧导航中的链接触发滚动时,用户很可能不希望菜单在滚动发生时进行动画处理。有没有办法在动画滚动运行时暂时禁用滚动间谍,然后在滚动完成后重新启用它?
我们在侧边栏 ul/il 列表上使用 twitter bootstrap scrollspy,效果很好。但是,在单击侧边栏中的链接时,我们也会使用平滑滚动。这会导致 scrollspy 突出显示进入视图的每个元素,就像在正常情况下一样。
但是,当通过单击侧导航中的链接触发滚动时,用户很可能不希望菜单在滚动发生时进行动画处理。有没有办法在动画滚动运行时暂时禁用滚动间谍,然后在滚动完成后重新启用它?
By setting a class as the target of scrollspy
you can dynamically stop/resume scrollspy
operation.
$('body').scrollspy({ target: '.spy-active' });
Now one will just need to add or remove the .spy-active
class on the navigation.
将以下内容添加到本地 javascript 的顶部...
$.fn.scrollspy.Constructor.prototype.destroy = function(){
this.$element.off('scroll.bs.scroll-spy.data-api');
this.$body.removeData('bs.scrollspy');
return this.$body;
}