Изменить смещение-вершину 'affix' при нажатии кнопки на jQuery - PullRequest
0 голосов
/ 27 мая 2018

Я хочу изменить смещение вершины 'affix', нажав на кнопку jQuery.

          $('#nav2').affix({
                offset: {
                  top: $("#nav1").height()+58
                }
          });

работает хорошо, но я не могу изменить верхнее значение после загрузки моей страницы, содержащей код.

1 Ответ

0 голосов
/ 27 мая 2018

Вы можете сделать это следующим образом:

$('#nav2')
    .affix({
        top: YOUR-NEW-VALUE
    })
    .affix('checkPosition'); // this will recalculate the position

Редактировать , чтобы ответить на ваше предложение, утверждения документации аффикса Bootstrap:

(checkPosition)Пересчитывает состояние аффикса на основе размеров, положения и положения прокрутки соответствующих элементов.Классы .affix, .affix-top и .affix-bottom добавляются или удаляются из прикрепленного содержимого в соответствии с новым состоянием.Этот метод необходимо вызывать всякий раз, когда изменяются размеры прикрепленного содержимого или целевого элемента, чтобы обеспечить правильное расположение прикрепленного содержимого.

Таким образом, нет необходимости удалять все классы и повторно-инициализировать affix.Просто используйте фрагмент кода выше.

Подробнее о Bootstrap affix можно найти здесь .

Лучшим вариантом будет установить его через css:

#nav2 {
    position: fixed;
    top: YOUR-INITIAL-POSITON
}

А затем с помощью jQuery измените только верхнюю позицию:

$('#nav2').css('top', YOUR-NEW-VALUE);

Надеюсь, это поможет.

...