【问题标题】:Can't scroll heroku maintenance page on iphone无法在 iPhone 上滚动 heroku 维护页面
【发布时间】:2018-02-05 14:23:11
【问题描述】:

我的 Heroku 应用程序上有一个自定义维护页面,但我无法在我的 iphone 上滚动它(在 safari 或 chrome 上都没有)。它可以在网络(Safari、甚至响应模式和 chrome)和 Android 手机上正常工作。

问题是 Heroku 使用以下代码将我的页面加载到 iframe 中:

<html>
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta charset="utf-8">
    <title>Offline for Maintenance</title>
    <style media="screen">
      html,body,iframe {
        margin: 0;
        padding: 0;
      }
      html,body {
        height: 100%;
        overflow: hidden;
      }
      iframe {
        width: 100%;
        height: 100%;
        border: 0;
      }
    </style>
  </head>
  <body>
      <iframe src="//s3.amazonaws.com/cf-udon-maintenance-page/index.html">
      // Here goes my page
      </iframe>
    </body>
</html>

这是在 iOS 上破坏滚动的部分,如果我在调试模式下取消设置此属性,则滚动开始工作

html,body {
   overflow: hidden;
}

由于我在iframe 内部,我无法访问它来覆盖它,我还没有找到从iframe 内部修复它的方法。

有什么想法吗? 我确定这以前没有发生过,这是 Heroku 最近的变化吗?

【问题讨论】:

    标签: ios css heroku iframe overflow


    【解决方案1】:

    如果您只能编辑 I 框架内的内容,请尝试以下代码。
    在样式中添加,

      html, body, .wrapper{
        height: 100%;
      }
    
      .footer{
        position: unset;
      }
    
      .wrapper{
        overflow: scroll;
        -webkit-overflow-scrolling: touch;
      }
    

    并在body标签正下方添加一个包装器

    <body>
      <div class="wrapper">
        <!-- Fixed navbar -->
        <nav class="navbar navbar-default navbar-fixed-top">
        </nav>
    
        <div class="jumbotron">
          <h1>Dang It</h1>
        </div>
    
        <!-- Begin page content -->
        <div class="container">
        </div>
    
        <footer class="footer">
        </footer>
      </div>
    <body>
    

    https://jsfiddle.net/dknfmqaL/

    【讨论】:

      【解决方案2】:

      尝试在 iframe 周围添加一个包装器。下面的代码似乎可以滚动。但标题不固定在顶部。 我猜 iOS 上的 iFrame 高度可能无法正常工作。

      <style type="text/css">
          .scroll-wrapper {
              width: 100%;
              height: 100%;
              -webkit-overflow-scrolling: touch;
              overflow-y: scroll;
          }
          iframe{
              width: 100%;
              height: 100%;
              border:0;
              border-bottom: 1px solid white; /* <- required in order for scrolling to work */
          }
      </style>
      
      <div class="scroll-wrapper">
          <iframe src="//s3.amazonaws.com/cf-udon-maintenance-page/index.html">
              // Here goes my page
          </iframe>
      </div>
      

      【讨论】:

      • 谢谢,但我无法控制 iframe 之外的任何内容,因此我无法在其周围添加包装器。我的代码被 Heroku 放在 iframe
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多