2 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
問(wèn)題是你的導(dǎo)航欄覆蓋了 div 的頂部。您可以通過(guò)使用window.scrollBy()和offsetHeight將窗口再次向上滾動(dòng)導(dǎo)航欄的高度來(lái)避免這種情況。該解決方案的優(yōu)點(diǎn)是它不需要您知道導(dǎo)航欄的起始高度,因此它允許各種不同的瀏覽器配置。
function headerClick(elem) {
if (elem.innerHTML === 'One') {
document.getElementById("One").scrollIntoView();
window.scrollBy(0, -(elem.offsetHeight)-2)
}
if (elem.innerHTML === 'Two') {
document.getElementById("Two").scrollIntoView();
window.scrollBy(0, -(elem.offsetHeight)-2)
}
if (elem.innerHTML === 'Three') {
document.getElementById("Three").scrollIntoView();
window.scrollBy(0, -(elem.offsetHeight)-2)
}
if (elem.innerHTML === 'Four') {
document.getElementById("Four").scrollIntoView();
window.scrollBy(0, -(elem.offsetHeight)-2)
}
if (elem.innerHTML === 'Five') {
document.getElementById("Five").scrollIntoView();
window.scrollBy(0, -(elem.offsetHeight)-2)
}
}
額外的 -2 是為了確??梢钥吹?div 邊框,但如果不需要,可以將其刪除。

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊
您可以這樣實(shí)現(xiàn):在每個(gè)部分之前添加某種錨點(diǎn),然后滾動(dòng)到該部分滾動(dòng)到不可見(jiàn)的錨點(diǎn),該錨點(diǎn)將有一些頂部偏移。
<a id='Two'></a>
<div class="common">Two</div>
#Two {
display: block;
position: relative;
top: -120px; /*Here must be same value as your navbar height is*/
visibility: hidden;
}
我希望它對(duì)你有幫助!
- 2 回答
- 0 關(guān)注
- 155 瀏覽
添加回答
舉報(bào)