我有想要“子导航”的网站。因此,当您滚动到该部分时,其工具栏将粘贴在主工具栏下方。我已经完成了这项工作,但无法在初始化后更改顶部偏移量。文档说:
但是当我尝试这样做时,我得到:
这是我的代码:
$(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}});
我无法获取偏移量进行更改。如何更改词缀插件的偏移量?谢谢。
最佳答案
我想到了。我没有动态更新偏移量,而是将偏移量值更改为一个函数:
$(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/