我爲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的標記錯誤,只是讓我知道,所以我和你聯繫通過發佈這個標記
親切的問候
爬不起來