gpt4 book ai didi

jquery - Twitter Bootstrap 更改词缀偏移量

转载 作者:行者123 更新时间:2023-12-03 22:24:22 24 4
gpt4 key购买 nike

我有一个想要“子导航”的网站。因此,当您滚动到部分时,其工具栏将固定在主工具栏下方。我可以正常工作,但初始化后无法更改顶部偏移量。文档说:

affix('refresh')

When using affix in conjunction with adding or removing of elements from the DOM, you'll want to call the refresh method:

但是当我尝试这个时,我得到:

Uncaught TypeError: Object # has no method 'refresh'

这是我的代码:

$(function () {
$('.sec-nav').addClass("affix-top");
var adjustNavs = function (first) {
$('.sec-nav').each(function (){
var $p = $(this).closest('.sec');
var $$ = $p.prevAll('.sec');
console.log($$);
var h = 0;
$$.each(function () { h+=$(this).outerHeight();});
console.log(h);

if (first) {
$(this).affix({offset: {top: h}});
} else {
$(this).data('affix', {b: {options: {offset:{top: h}}}});
console.log(this);
$(this).affix('refresh')
}

});
}
adjustNavs(true);
$('.sec').bind('DOMSubtreeModified', function () {
adjustNavs();
});
});

我尝试过不同的变体

                $(this).data('affix', {b: {options: {offset:{top: h}}}});

包括:

                $(this).affix({offset: {top: h}});

我无法更改偏移量。如何更改 Affix 插件的偏移量?谢谢。

最佳答案

我明白了。我没有动态更新偏移量,而是将偏移值更改为函数:

$(function () {
$('.sec-nav').addClass("affix-top").each(function (){
var $self = $(this);
var offsetFn = function () {
var $p = $self.closest('.sec');
var $$ = $p.prevAll('.sec');
var h = 0;
$$.each(function () { h+=$(this).outerHeight();});
return h;
}
$self.affix({offset: {top: offsetFn}});
});
});

现在,当某个部分由于 dom 操作或窗口大小调整而发生变化时,偏移量会由于函数返回值的变化而自动更改。

关于jquery - Twitter Bootstrap 更改词缀偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12181136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com