2017-03-11 79 views
0

如何在用戶手動滾動並達到某個類別(本例中爲「內容」)時將其添加到名爲navigation的類的頂部填充爲50px的地方在滾動上添加填充

這是我有,但它是不工作,任何幫助表示讚賞。

window.onscroll = function() { 
    var scrollTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop; 
    if (scrollTop >= document.getElementsByClassName("content").offsetTop) { 
    document.getElementsByClassName("navigation").style.paddingTop = "50px"; 
    } else { 
    document.getElementsByClassName("navigation").style.paddingTop = "0px"; 
    } 
} 

回答

2

getElementsByClassName()返回一個數組,對象,那麼你需要參考你想改當元素的索引你可以使用它,或者你可以給這些元素一個id,而不是使用getElementById()

window.onscroll = function() { 
 
    var scrollTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop; 
 
    if (scrollTop >= document.getElementsByClassName("content")[0].offsetTop) { 
 
    document.getElementsByClassName("navigation")[0].style.paddingTop = "50px"; 
 
    } else { 
 
    document.getElementsByClassName("navigation")[0].style.paddingTop = "0px"; 
 
    } 
 
}
.content { 
 
    padding-top: 100px; 
 
    height: 300vh; 
 
} 
 
.navigation { 
 
    background: #eee; 
 
}
<div class="content"> 
 
    <div class="navigation">asdf</div> 
 
</div>

+0

,完美的工作謝謝! – user2321959

+0

@ user2321959不客氣!歡迎來到SO btw。一定要注意任何有助於解決問題的答案,並在解決問題後,將最佳答案標記爲解決方案(複選框的答案)。 –