通过jQuery单击按钮更改'affix'offset-top

时间:2018-05-27 13:59:05

标签: jquery twitter-bootstrap affix

我想通过点击jQuery按钮来更改'affix'offset-top。

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

运行良好,但在加载包含代码的页面后,我无法更改顶部值。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

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

编辑以回答您的建议,Bootstrap词缀文档声明:

  

checkPosition)根据相关元素的维度,位置和滚动位置重新计算词缀的状态。根据新状态,将.affix,.affix-top和.affix-bottom类添加到附加内容或从附加内容中删除。每当粘贴内容或目标元素的尺寸发生变化时,都需要调用此方法,以确保正确定位附加内容。

因此无需删除所有类并重新初始化affix。只需使用上面的代码段即可。

有关Bootstrap affix的更多信息,请访问here

最好的选择是将其设置为css:

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

然后用jQuery改变顶部位置:

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

希望它有所帮助。