Сброс/изменение смещения бутстрап-аффикса
Как изменить смещение Affix (Twitter Bootstrap 3) на другое значение?
Когда я пытался вызвать метод дважды, как это, второй, кажется, игнорируется и не имеет никакого эффекта:
$('#navbar-main').affix({ offset: 100});
$('#navbar-main').affix({ offset: 200}); // ---> the offset will not change to 200px
Сброс обратного вызова .affix
перед вызовом affix
второй раз не помогло:
$('#navbar-main').affix({ offset: 100});
$(window).off('.affix');
$('#navbar-main').affix({ offset: 200}); // ---> the offset will not change to 200px
Ответы
Ответ 1
Вот как. Ключ состоит в том, чтобы вызвать off
на .affix
, а также removeData
на элемент affix'ed. Скажем, я хочу reset аффикс #navbar-main
:
Bootstrap < 3 (из es128):
$(window).off('.affix')
$('#navbar-main').removeData('affix').removeClass('affix affix-top affix-bottom')
$('#navbar-main').affix({ offset: 400})
Bootstrap 3 (из Dysko):
$(window).off('.affix')
$('#navbar-main').removeData('bs.affix').removeClass('affix affix-top affix-bottom')
$('#navbar-main').affix({ offset: 400})
Ответ 2
помните, что у вас есть доступ к конструктору в любое время с помощью метода данных...
поэтому, если вы просто пытаетесь обновить значение... вы можете сделать:
$('#navbar-main').data('bs.affix').options.offset = newOffset
надеюсь, что помогает < 3 жир