因此,基本上我在我正在處理的一個頁面上有一個側面導航欄,我試圖將其固定在滾動上並在達到某個點時取消固定。現在這個問題的目的不僅僅是得到直接的答案,我還想解釋一下爲什麼我的代碼不工作。如何使用js對一個元素進行固定和取消固定
當我將它固定到頁面上時,代碼是很好的,但我希望它在到達頁腳部分時解除固定,這就是我頭痛的地方。
我嘗試這樣做:
HTML
<div class="header"></div>
<div class="side-nav"></div>
<div>Rest of page content</div>
<div class="footer"></div>
JS
function pinElement() {
var products = document.querySelector('.rest-of-page'),
scroll = window.scrollY,
nav = document.querySelector('.side-nav'),
navTop = nav.offsetTop
header = document.querySelector('.header'),
offset = header.clientHeight,
end = products.clientHeight + products.offsetTop;
if (scroll >= navTop) {
nav.style.position = 'fixed';
nav.style.top = offset;
} else if (scroll < navTop) {
nav.style.position = 'relative';
} else {
if(scroll >= end){
nav.style.position = 'relative';
}
}
}
document.addEventListener('scroll', pinElement)
現在我在當它到達 「結束」 不取消固定問題變量,而不是它滾動通過它並在底部附近的某處處於空閒狀態。我想了解爲什麼會發生這種情況,並找到解決這個問題的適當方法。 謝謝
「pin」是什麼意思? –
使一個元素的位置固定在頁面上 – HackAfro
@HackAfro比這麼說:) –