Bootstrap 3.0 reaguje na przewijanie

Próbuję uzyskać przewijanie Bootstrap do niezawodnej pracy na responsywnej stronie, na której wysokość górnego paska nawigacyjnego zmienia się w zależności od szerokości nośnika / przeglądarki. Więc zamiast zakodować przesunięcie nadata-offset atrybut Ustawiam go dynamicznie dzięki inicjalizacji JavaScript w następujący sposób:

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

W przypadku szerokich układów (np. Bootstrap -lg) działa dobrze, ale w przypadku węższych układów występuje przesunięcie „akumulacyjne”. Innymi słowy, działa dobrze dla pierwszej sekcji, ale następnie wymaga zwiększenia pikseli, aby aktywować następujące (np. 90px dla następnego, 110px dla trzeciego itd.).

Próbowałem manipulować obiektem scrollspy bezpośrednio, jak wspomniano w tej odpowiedzi:Jak ustawić przesunięcie dla ScrollSpy w Bootstrap? ale bez skutku.

Czy ktoś może polecić kanoniczny sposób implementacji scrollspy w responsywnej witrynie, gdzie przesunięcie zmienia się w zależności od szerokości nośnika?

Dodatkowe informacje:

Właśnie przeanalizowałem obiekt scrollspy w obu scenariuszach i okazuje się, że lista przesunięć jest inna, gdy jest inicjowana przezdata- atrybuty tylko vs. przez JS. Wygląda na to, że kiedy inicjalizuję go za pomocą JS, tablica offsetu zostaje zapełniona, zanim zdarzą się niektóre regulacje reagujące na BS i dlatego wysokości są różne. Jak mogę uruchomić inicjalizację scrollspy?po uruchomiono wszystkie responsywne rzeczy? Czy istnieje hak / wywołanie zwrotne po zakończeniu ustawiania BS przez układ? Czy JS jest nawet zaangażowany lub czy wszystkie responsywne rzeczy są obsługiwane przez CSS?

questionAnswers(2)

yourAnswerToTheQuestion