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});
});

它采用新的高度,并将其添加为 attr 并删除所有其他 attr (因为如果不是,它会增加很多:data-500、data-501、data-502、data-503 ...)并通过查看在代码处 - 它工作得很好。问题是 Skrollr 没有“看到”变化。我该怎么办?

4

1 回答 1

1

嗯,这很容易。1 行而不是 20 行。

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

以及我添加的导航data-_menuresize="position: fixed;"(它解释了menuresize 上面代码中的含义)。

享受:D

于 2014-02-23T16:48:18.000 回答