2016-05-27 102 views
0

我爲subnav創建了粘性導航欄,當用戶向下滾動時,它應該粘在屏幕的頂部。因此,我嘗試了一些JavaScript,當頂端達到時,它將位置更改爲「固定」。當導航欄離開流程時避免內容出現空白,我還添加了一個佔位符,它與導航欄的高度相同。粘性導航欄在滾動時無法在移動設備上工作

在桌面上它確實有效,看起來應該如何。但是我在移動視圖上遇到了「觸摸」問題。當我在移動視圖上向下滾動時,在滾動視點的過程中,css類正在改變的過程中不會出現導航欄。只有當我停止在該視點之後滾動時纔會出現。當它顯示出來時,我通常可以上下滾動,如果我重複這個過程,導航欄必須更改css類,我只能再次遇到這個問題。所以這可能是一個與CSS類更改的問題,我想這個問題可能在JavaScript代碼片段中。有沒有人知道這個解決方案?我希望在桌面視圖上具有相同的行爲,所以導航欄始終可見並且只是固定在屏幕的頂部,即使它處於滾動的流程中。

JS:

var menu = document.querySelector('#irp-localnav'); 
var menuPosition = menu.getBoundingClientRect(); 
var placeholder = document.createElement('div'); 
placeholder.style.width = menuPosition.width + 'px'; 
placeholder.style.height = menuPosition.height + 'px'; 
var isAdded = false; 

window.addEventListener('scroll', function() { 
if (window.pageYOffset >= menuPosition.top && !isAdded) { 
    menu.classList.add('sticky'); 
    menu.parentNode.insertBefore(placeholder, menu); 
    isAdded = true; 
} else if (window.pageYOffset < menuPosition.top && isAdded) { 
    menu.classList.remove('sticky'); 
    menu.parentNode.removeChild(placeholder); 
    isAdded = false; 
} 
}); 

如果你想在HTML/CSS的標記錯誤,只是讓我知道,所以我和你聯繫通過發佈這個標記

親切的問候

爬不起來

回答

相關問題