1

我正在使用 jQuery 根据位置中哈希的更改为 scrollTop 设置动画。效果很好。

问题是,当我单击“主页”时,我希望它一直滚动到真正的顶部——包括地址栏。

显然,这与大多数人想要的相反。所以有很多关于如何隐藏那个讨厌的地址栏的问题。

就我而言,我希望能够(使用 JavaScript)滚动到页面顶部。现在,当我尝试将 scrollTop 设置为 0 或 -100 或 -500 时,它只会将我置于内容的顶部,并且地址栏保持隐藏状态。

4

2 回答 2

2

你可以尝试设置document.body.scrollTop=0。这将显示地址栏。希望这可以帮助。

于 2013-03-12T12:11:32.803 回答
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。

于 2017-08-30T15:33:27.357 回答