2014-05-22 15 views
12

Jak zmienić przesunięcie elementu Affix (Twitter Bootstrap 3) na inną wartość?Resetowanie/zmiana offsetu znacznika ładowania początkowego

Kiedy próbowałem wywołać metodę dwukrotnie tak, drugi wydaje się być ignorowane i nie ma żadnego wpływu:

$('#navbar-main').affix({ offset: 100}); 
$('#navbar-main').affix({ offset: 200}); // ---> the offset will not change to 200px 

Resetowanie .affix zwrotnego przed wywołaniem affix drugi raz nie pomogło albo:

$('#navbar-main').affix({ offset: 100}); 
$(window).off('.affix'); 
$('#navbar-main').affix({ offset: 200}); // ---> the offset will not change to 200px 

Odpowiedz

11

Oto jak. Kluczem jest zarówno wywołanie off na .affix, a także, removeData na elemencie affix. Powiedzmy, że chcesz zresetować przyrostek z #navbar-main:

Bootstrap < 3 (z es128):

$(window).off('.affix') 
$('#navbar-main').removeData('affix').removeClass('affix affix-top affix-bottom') 
$('#navbar-main').affix({ offset: 400}) 

Bootstrap 3 (z Dysko):

$(window).off('.affix') 
$('#navbar-main').removeData('bs.affix').removeClass('affix affix-top affix-bottom') 
$('#navbar-main').affix({ offset: 400}) 
38

pamiętać, masz dostęp do konstruktor w dowolnym momencie za pomocą metody danych ...

, więc jeśli chcesz tylko zaktualizować wartość ... można zrobić:

$('#navbar-main').data('bs.affix').options.offset = newOffset 

nadzieję, że pomoże < 3 tłuszczu

+9

nie zapominaj, że przesunięcie to obiekt z górnym/dolnym własności. Używałem .options.offset = x; i nie .options.offset.top = x; a mój dołączony div szaleje. – Aknosis

+0

Działa. Dzięki @fat – kach

Powiązane problemy