Bootstrap 3.0 scrollspy offsets responsivos

Estou tentando fazer com que o scrollspy do Bootstrap funcione de maneira confiável em um site responsivo no qual a altura da barra de navegação superior muda de acordo com a largura da mídia / navegador. Então, ao invés de codificar o offset nodata-offset Atributo estou configurando dinamicamente através de inicialização JavaScript como este:

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

Para layouts amplos (isto é, Bootstrap -lg) funciona bem, mas para layouts mais estreitos parece haver um deslocamento "acumulado" em vigor. Em outras palavras, ele funciona bem para a primeira seção, mas depois usa pixels crescentes para ativar os seguintes (por exemplo, 90px para o próximo, 110px para o terceiro, etc.).

Eu tentei manipular o objeto scrollspy diretamente, como mencionado nesta resposta:Como faço para definir o deslocamento para ScrollSpy no Bootstrap? mas sem sucesso.

Alguém pode recomendar uma maneira canônica de implementar scrollspy em um site responsivo onde o deslocamento varia de acordo com a largura da mídia?

Informação adicional:

Eu acabei de analisar o objeto scrollspy em ambos os cenários e acontece que a lista de offsets é diferente quando é inicializadadata- atributos apenas vs. via JS. Parece que quando eu inicializo via JS a matriz de offsets é preenchida antes que alguns ajustes de BS aconteçam e, portanto, as alturas são diferentes. Como posso acionar a inicialização do scrollspydepois de todas as coisas responsivas correram? Existe um hook / callback depois que o BS é feito ajustando o layout? O JS está envolvido ou é todo o material responsivo manipulado pelo CSS?

questionAnswers(2)

yourAnswerToTheQuestion