无法在iphone上滚动heroku维护页面

时间:2018-02-05 14:23:11

标签: ios css heroku iframe overflow

我的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的最近改变吗?

2 个答案:

答案 0 :(得分:2)

如果您只能编辑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/

答案 1 :(得分:0)

尝试在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>