簡體   English   中英

調整大小后刷新Skrollr

[英]Refresh Skrollr after resizing

我希望<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無法“看到”更改。 我該怎么辦?

好吧,那很容易。 一行而不是20行。

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

並在導航中添加data-_menuresize="position: fixed;" (並解釋了上面的代碼中menuresize含義)。

享受:D

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM