[英]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.