Позиция аффикса не пересчитывается при изменении размера

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

Позиция, в которой он срабатывает, не обновляется, хотя я установил пересчет значений, когда я $(window).resize(). Что случилось?

$(document).ready ->
  $(window).resize ->

    windowHeight = $(window).height()
    navHeight = $('#navbar-affixable-wrapper > #navbar.affixable').outerHeight()
    windowMinusNavHeight = windowHeight - navHeight

    $('#navbar-affixable-wrapper > #navbar.affixable').affix
      offset: { top: windowMinusNavHeight }

Или в javascript:

$(document).ready(function() {
  return $(window).resize(function() {
    var navHeight, windowHeight, windowMinusNavHeight;
    windowHeight = $(window).height();
    navHeight = $('#navbar-affixable-wrapper > #navbar.affixable').outerHeight();
    windowMinusNavHeight = windowHeight - navHeight;

    return $('#navbar-affixable-wrapper > #navbar.affixable').affix({
      offset: {
        top: windowMinusNavHeight
      }
    });
  });
});

person ahnbizcad    schedule 12.02.2015    source источник


Ответы (1)


Можете ли вы вернуть верхнее значение смещения как функцию?

Например:

$(function(){

   var $window = $( window );
   var $navbar = $('#navbar-affixable-wrapper > #navbar.affixable');

   $navbar.affix({
      offset: {
        top: function(){
           // Calculate offset top value
           return $window.height() - $navbar.outerHeight( true ); // I always pass true in there so margin is taken into consideration.
        }
      }
    })
});

Вы можете ознакомиться с документацией по аффиксам на веб-сайте Bootstrap.

person Paul. B    schedule 26.02.2015
comment
беда с изменением размера. Я пересчитываю значения в функции изменения размера, но кажется, что я ссылаюсь на старый кэшированный дом со старой высотой. Как мне обновить дом, чтобы он точно отражал новые высоты при изменении размера? Если это можно сделать, то я не понимаю, почему логика установки аффикса в функции изменения размера не приведет к интуитивному поведению. - person ahnbizcad; 28.02.2015
comment
У вас есть jsfiddle или что-то в этом роде? - person Paul. B; 02.03.2015
comment
у меня есть веб-сайт, но, может быть, у вас есть скрипка, которая правильно работает при изменении размера? Мне не удалось правильно обновить значение верхнего смещения при изменении размера в моем случае. - person ahnbizcad; 05.03.2015