【问题标题】:How to show the iOS Safari address bar with javascript?如何使用 javascript 显示 iOS Safari 地址栏?
【发布时间】:2013-01-13 04:28:06
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您是在使用 Objective-C 还是在谈论您正在设计的网站...如果是 Objective-C,这应该可以:[webView.scrollView setContentOffset:CGPointZero animated:YES];
  • 谢谢 Albert -- 不,我在网上工作。
  • 啊,对不起!希望我能有更多用处!
  • 显然将表单字段设置为当前输入会再次显示 URL 栏...您可以滚动到顶部然后尝试以这种方式显示它。来源:stackoverflow.com/questions/9669779/…
  • 可能加载了一个假链接?或者甚至在当前 URL 的末尾添加井号 # 之类的操作可能会显示 URL 栏?基于那个线程?

标签: jquery ios safari scrolltop


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    对我来说这是可行的:

    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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-06
      • 2011-12-14
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 2013-04-14
      • 1970-01-01
      • 2021-11-20
      相关资源
      最近更新 更多