0

我正在使用基于我的窗口高度的常量 - 所以如果用户调整浏览器的大小,高度可能会改变。我显然想在调整窗口大小时重新计算浏览器高度。这是我目前拥有的,但它似乎不起作用:

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 函数以及我在环顾四周时发现的另一个片段 - 但似乎都不能正常工作。我设置错了吗?

4

1 回答 1

2

init多次调用是一个noop。此外,您不需要再次初始化 skrollr-menu,它只适用于更新链接。

使用最新的 skrollr,您可以做到这一点

var s = skrollr.init({
    //smoothScroll: false,
    forceHeight: false,
    constants: {
        foobar: function() {
            return $(window).height() - 80;
        }
    }
});
于 2014-01-16T15:11:38.843 回答