带有动画滚动的bootstrap.js scrollspy
我目前正在使用这个插件: http : //github.com/davist11/jQuery-One-Page-Nav
但更愿意转而使用Twitter的Bootstrap.js Scrollspy: http : //twitter.github.com/bootstrap/javascript.html#scrollspy
但是,这不提供在单击时为滚动动画设置动画的选项。 我该如何添加?
你应该看看http://plugins.jquery.com/scrollTo/ ,它应该与引导程序结合起来非常简单。 如果您愿意,我将很乐意对如何实施它进行更详细的探讨。
有或没有bootstrap:
好的,没有必要添加任何额外的无意义的js插件。
将此添加到正文
将custom.js添加到主题或只使用其他正确的文件。
将其添加到custom.js
// strict just to keep concept of bootstrap +function ($) { 'use strict'; // spy and scroll menu boogey $("#navbar ul li a[href^='#']").on('click', function(e) { // prevent default anchor click behavior e.preventDefault() // store hash var hash = this.hash // animate $('html, body').animate({ scrollTop: $(this.hash).offset().top -500 }, 1000, function(){ window.location.hash = hash -500 }) }) }(jQuery);
请务必使用
和和函数中的
-500
位置是偏移滚动的位置
这是一个使用jQuery.localScroll的单行程序 :
$.localScroll();
这基本上是上述答案的扩展,但我对它们采用了更加集成的方法略有不同。 我不指望任何创意点,但也许这可以帮助某人。
如上面的答案所述,添加scrollTo()脚本:
在bootstrap.js文件中找到:
// SCROLLSPY CLASS DEFINITION // ==========================
在变量声明中,在this.process()
添加变量:
this.scroll()
然后在ScrollSpy.prototype.activate
函数下面,以及上面:
// SCROLLSPY PLUGIN DEFINITION // ===========================
添加你的scroll()方法:
ScrollSpy.prototype.scroll = function (target) { $('#spyOnThis').bind('click', 'ul li a', function(event) { $.scrollTo(event.target.hash, 250); }); };
这对我有用。 再次感谢您提供有用的建议。