调整大小后刷新Skrollr

时间:2014-02-23 16:29:08

标签: javascript jquery css skrollr

我想在用户通过第一个“块”(<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没有“看到”变化。我该怎么办?

1 个答案:

答案 0 :(得分:1)

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

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

和导航我添加了data-_menuresize="position: fixed;"(它解释了menuresize 在上面的代码中表示。)

享受:D