重置/更改bootstrap词缀的偏移量

lol*_*ski 12 twitter-bootstrap twitter-bootstrap-3

如何将Affix(Twitter Bootstrap 3)的偏移量更改为其他值?

当我试图像这样两次调用方法时,第二个似乎被忽略并且没有任何效果:

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

在第二次.affix调用之前重置回调affix也无济于事:

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

小智 39

记住,您可以随时使用数据方法访问构造函数...

所以如果你只是想更新一个值......你可以这样做:

$('#navbar-main').data('bs.affix').options.offset = newOffset
Run Code Online (Sandbox Code Playgroud)

希望有助于<3脂肪

  • 不要忘记偏移是具有顶部/底部属性的对象.我正在使用.options.offset = x; 而不是.options.offset.top = x; 我加贴的div很疯狂. (10认同)

lol*_*ski 13

这是如何做.关键是两个呼叫off.affix,而且,removeData在affix'ed元素.假设我要重置以下内容#navbar-main:

Bootstrap <3(来自es128):

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

Bootstrap 3(来自Dysko):

$(window).off('.affix')
$('#navbar-main').removeData('bs.affix').removeClass('affix affix-top affix-bottom')
$('#navbar-main').affix({ offset: 400})
Run Code Online (Sandbox Code Playgroud)