【问题标题】:Change 'affix' offset-top on click a button by jQuery通过 jQuery 单击按钮更改“附加”偏移顶部
【发布时间】:2018-11-06 06:00:45
【问题描述】:

我想通过点击 jQuery 的按钮来更改 'affix' 偏移顶部。

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

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

【问题讨论】:

    标签: jquery twitter-bootstrap affix


    【解决方案1】:

    你可以这样做:

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

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

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

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

    有关 Bootstrap 的更多信息affix 可以找到here

    最好的选择是在 css 中设置它:

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

    然后用 jQuery 只改变顶部位置:

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

    希望对你有帮助。

    【讨论】:

    • 怎么样:$(window).off('.affix'); $("#nav2") .removeClass("affix affix-top affix-bottom") .removeData("bs.affix"); $('#nav2').affix({ offset: { top: $("#nav1").height() } });
    猜你喜欢
    • 1970-01-01
    • 2021-11-11
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-22
    • 2016-02-06
    • 2017-05-31
    相关资源
    最近更新 更多