1

<nav>ユーザーが最初の「ブロック」( ) を通過した後、 が固定されるようにしたいheight: 100%;。Skrollr を使用することにしたのは、モバイルと IE でバグがなく、すぐに「変更」できる唯一の方法であるためです。だから私はこれをしました:

$("nav").attr("data-" + $("header").height(), "position: fixed;");

ページのサイズを変更するまで、これはうまく機能します (<nav>は の直後です)。<header>だから私はこれをしました:

$(window).resize(function () {
    var style = $("nav").attr("style");
    $('nav').each(function() {
        var attributes = this.attributes;
        var i = attributes.length;
        while( i-- ){
            this.removeAttributeNode(attributes[i]);
        }
    })
    $("nav").attr("data-" + $("header").height(), "position: fixed;");
    $("nav").attr({"data-0": "position: absolute;", "style": style});
});

新しい高さを取り、それを属性として追加し、他のすべての属性を削除します(そうでない場合は、データ-500、データ-501、データ-502、データ-503...)を追加し、見てコードで - それはうまくいきます。問題は、Skrollr が変更を「認識」しないことです。私は何をすべきか?

4

1 に答える 1

1

まあ、それは簡単でした。20 行ではなく 1 行。

var s = skrollr.init({
    constants: {
        menuresize: function() {
            return $("header").height();
        },
        vh: '100p'
    }
});

そして、私が追加するナビゲーションにdata-_menuresize="position: fixed;"(そして、menuresize 上記のコードの意味を説明しています)。

お楽しみください:D

于 2014-02-23T16:48:18.000 に答える