我正在使用 jQuery 根据位置中哈希的更改为 scrollTop 设置动画。效果很好。
问题是,当我单击“主页”时,我希望它一直滚动到真正的顶部——包括地址栏。
显然,这与大多数人想要的相反。所以有很多关于如何隐藏那个讨厌的地址栏的问题。
就我而言,我希望能够(使用 JavaScript)滚动到页面顶部。现在,当我尝试将 scrollTop 设置为 0 或 -100 或 -500 时,它只会将我置于内容的顶部,并且地址栏保持隐藏状态。
你可以尝试设置document.body.scrollTop=0
。这将显示地址栏。希望这可以帮助。
对我来说这有效:
document.body.scrollTop = -1
...但是由于动量滚动,之后内容有点偏移,所以我通常使用一个较短的间隔将 scrollTop 设置为 -1 直到它位于正确的位置。
我用这个助手...
const showMobileUrlBar = () => {
let i = 0
const to = setInterval(() => {
document.body.scrollTop = -1
// clear timeout after 250 ms and reset scrollTop to 0
if (i++ > 25) {
clearInterval(to)
document.body.scrollTop = 0
}
}, 10)
}
...在动画滚动位置时可以在 onComplete 回调中使用,如下所示:
TweenMax.to(window, 0.5, {scrollTo: 0, onComplete: showMobileUrlBar})
不是最好的解决方案,但它适用于 iPad 和 iPhone。