如何用javascript显示iOS Safari地址栏?

时间:2013-01-13 04:28:06

标签: jquery ios safari scrolltop

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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。