【问题标题】:Resetting / changing the offset of bootstrap affix重置/更改引导词缀的偏移量
【发布时间】:2014-07-10 22:12:17
【问题描述】:

如何将 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

【问题讨论】:

    标签: twitter-bootstrap twitter-bootstrap-3


    【解决方案1】:

    请记住,您可以随时使用 data 方法访问构造函数……

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

    $('#navbar-main').data('bs.affix').options.offset = newOffset
    

    希望对有帮助

    【讨论】:

    • 不要忘记 offset 是一个具有 top/bottom 属性的对象。我正在使用 .options.offset = x;而不是 .options.offset.top = x;我的附加 div 快疯了。
    • 我使用下一个解决方案解决了这个问题:stackoverflow.com/a/23137120/469161
    【解决方案2】:

    方法如下。关键是既要在.affix 上调用off,也要在附加元素上调用removeData。假设我要重置#navbar-main的词缀:

    Bootstrap es128):

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

    引导程序 3(来自 Dysko):

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多