我使用的是基于窗口高度的常量 - 因此,如果用户调整浏览器的大小,则高度可能会发生变化。我很明显想在调整窗口大小时重新计算浏览器高度。这就是我现在所拥有的,但它似乎并没有起作用:
function resize_articles() {
var viewportHeight = $(window).height() - 80;
var constantsData = Math.floor(viewportHeight * 1);
var s = skrollr.init({
//smoothScroll: false,
forceHeight: false,
constants: {
foobar: constantsData
}
});
/* Initialise skrollr scroll menu */
skrollr.menu.init(s, {
animate: true
});
/* Building links */
$('#link1').attr('data-menu-top', (viewportHeight + 400));
$('#link2').attr('data-menu-top', (viewportHeight + 900));
$('#link3').attr('data-menu-top', (viewportHeight + 1500));
s.refresh();
}
resize_articles();
$(window).resize(function() {
resize_articles();
//skrollr.get().refresh(document.getElementsByClassName('skrollr'));
});
我试图在页面调整大小时调用resize_articles函数,并在环顾四周时找到另一个片段 - 但似乎都没有正常工作。我把它设置错了吗?
答案 0 :(得分:2)
多次调用init
是一个noop。此外,您不需要再次初始化skrollr菜单,它只能使用更新链接。
使用最新的skrollr你可以这样做
var s = skrollr.init({
//smoothScroll: false,
forceHeight: false,
constants: {
foobar: function() {
return $(window).height() - 80;
}
}
});