Bootstrap 3.0 scrollspy responsive Offsets

Ich versuche, Bootstraps Scrollspy auf einer responsiven Site, auf der sich die Höhe der oberen Navigationsleiste je nach Breite des Mediums / Browsers ändert, zuverlässig zum Laufen zu bringen. Anstatt also den Offset auf der Festplatte zu codierendata-offset Attribut Ich setze es dynamisch durch Javascript-Initialisierung wie folgt:

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

Für breite Layouts (d. H. Bootstrap -lg) funktioniert es gut, aber für engere Layouts scheint es einen "akkumulierenden" Versatz zu geben. Mit anderen Worten, es funktioniert gut für den ersten Abschnitt, benötigt dann jedoch zunehmende Pixel, um die folgenden zu aktivieren (z. B. 90 Pixel für den nächsten, 110 Pixel für den dritten usw.).

Ich habe versucht, das scrollspy-Objekt direkt zu manipulieren, wie in dieser Antwort erwähnt:Wie stelle ich den Offset für ScrollSpy in Bootstrap ein? aber ohne Erfolg.

Kann jemand eine kanonische Methode zum Implementieren von Scrollspy auf einer reaktionsfähigen Site empfehlen, bei der der Offset je nach Medienbreite variiert?

Zusätzliche Information:

Ich habe gerade das scrollspy-Objekt in beiden Szenarien analysiert und festgestellt, dass die Liste der Offsets bei der Initialisierung unterschiedlich istdata- Attribute nur vs. via JS. Es scheint, als würde beim Initialisieren über JS das Offsets-Array gefüllt, bevor einige BS-Anpassungen vorgenommen werden, und daher sind die Höhen unterschiedlich. Wie kann ich die Initialisierung von scrollspy auslösen?nach dem das ganze responsive Zeug ist gelaufen? Gibt es einen Hook / Callback nachdem BS das Layout angepasst hat? Ist JS überhaupt involviert oder werden alle responsiven Dinge von CSS gehandhabt?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage