Fat*_*moo 9 jquery twitter-bootstrap
我有我想要'子导航'的网站.因此,当您滚动到部分时,其工具栏将粘贴在主工具栏下方.我有这个工作,但我无法在初始化后更改顶部偏移.文档说:
贴上("刷新")
将affix与添加或删除DOM中的元素结合使用时,您需要调用refresh方法:
但是当我尝试这个时,我得到:
未捕获的TypeError:对象#没有方法'刷新'
这是我的代码:
$(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();
});
});
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的变化
$(this).data('affix', {b: {options: {offset:{top: h}}}});
Run Code Online (Sandbox Code Playgroud)
包含:
$(this).affix({offset: {top: h}});
Run Code Online (Sandbox Code Playgroud)
我无法改变偏移量.你如何改变词缀插件的偏移量?谢谢.
Fat*_*moo 20
我想到了.我没有动态更新偏移量,而是将偏移值更改为函数:
$(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}});
});
});
Run Code Online (Sandbox Code Playgroud)
现在当一个部分由于dom操作或窗口重新调整大小而改变时,由于函数返回值的改变,偏移量会自动改变.
| 归档时间: |
|
| 查看次数: |
11286 次 |
| 最近记录: |