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何度も電話してもダメです。また、skrollr-menu を再度初期化する必要はありません。更新リンクで動作するだけです。

最新のskrollrを使用すると、これを行うことができます

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