Bootstrap 3.0 scrollspy compensar las compensaciones

Estoy tratando de lograr que el scrollspy de Bootstrap funcione de manera confiable en un sitio receptivo en el que la altura de la barra de navegación superior cambie de acuerdo con el ancho del medio / navegador. Así que en lugar de codificar el offset en eldata-offset atributo lo estoy configurando dinámicamente a través de la inicialización de Javascript de esta manera:

$('body').scrollspy({ offset: 70, target: '#nav' });

Para diseños amplios (es decir, Bootstrap -lg) funciona bien, pero para diseños más estrechos parece haber un desplazamiento "acumulado" en efecto. En otras palabras, funciona bien para la primera sección, pero luego aumenta el número de píxeles para activar los siguientes (por ejemplo, 90 píxeles para la siguiente, 110 píxeles para la tercera, etc.).

Intenté manipular el objeto scrollspy directamente como se menciona en esta respuesta:¿Cómo configuro el desplazamiento para ScrollSpy en Bootstrap? pero fue en vano.

¿Puede alguien recomendar una forma canónica de implementar scrollspy en un sitio receptivo donde el desplazamiento varía según el ancho del medio?

Información Adicional:

Acabo de analizar el objeto scrollspy en ambos escenarios y resulta que la lista de compensaciones es diferente cuando se inicializa a través dedata- atributos solo vs vía JS. Parece que cuando lo inicializo a través de JS, la matriz de desplazamientos se rellena antes de que se realicen algunos ajustes de respuesta de BS y, por lo tanto, las alturas son diferentes. ¿Cómo puedo activar la inicialización de scrollspy?después todas las cosas de respuesta se ha ejecutado? ¿Hay un enlace / devolución de llamada después de que BS haya terminado de ajustar el diseño? ¿JS está involucrado o todas las cosas sensibles están manejadas por CSS?

Respuestas a la pregunta(2)

Su respuesta a la pregunta