Esta es básicamente una extensión de las respuestas anteriores pero les implementarse de forma ligeramente diferente para un enfoque más integrado. No espero ningún punto de originalidad, pero tal vez esto pueda ayudar a alguien.
Como se mencionó en la respuesta anterior, añadir el() guión scrollTo:
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-scrollTo/1.4.3/jquery.scrollTo.min.js"></script>
En el archivo bootstrap.js hallazgo:
// SCROLLSPY CLASS DEFINITION
// ==========================
En las declaraciones de variables, justo debajo de this.process()
añadir el variable:
this.scroll()
Luego, justo debajo del ScrollSpy.prototype.activate
función, y por encima de:
// SCROLLSPY PLUGIN DEFINITION
// ===========================
añadir su método de desplazamiento():
ScrollSpy.prototype.scroll = function (target) {
$('#spyOnThis').bind('click', 'ul li a', function(event) {
$.scrollTo(event.target.hash, 250);
});
};
Esto funcionó para mí. Gracias de nuevo por los consejos útiles arriba.
Un poco más de ayuda ¡sería genial! ¿Dónde coloco exactamente el comando scrollTo, p. '$ .scrollTo ('#' + target ', 1000);'? – thv20
El scrollspy no maneja el movimiento hacia el elemento, esto se hace de forma nativa por el navegador.Todo lo que scroll espía hace es cambiar el elemento seleccionado a medida que el usuario se desplaza. Aquí hay una implementación rápida de scrollTo que debería ayudar: http://jsfiddle.net/flabbyrabbit/69z7x/ – FlabbyRabbit
Brilliant! Una última pregunta, ¿puedo establecer un desplazamiento superior? Por favor, mira aquí para referencia: http://jsfiddle.net/69z7x/5/ Así que aquí habría una compensación de 200px. – thv20