iOS中的iframe,固定定位和滚动问题

时间:2017-04-13 14:22:49

标签: javascript ios css iframe scroll

我有一个基本的html文件,其中包含一个iFrame,该文件可以用作" webview"。这个iframe应该具有移动屏幕区域的确切区域,但随着iOS框架扩展到其内容,任何绝对定位内容都会变得奇怪。我能够用一个(有些笨重的)解决方案来解决这个问题,使得框架的html具有固定的高度,并将主体固定在固定位置并溢出:auto。

(固定位置阻止了滚动时的闪烁)。

问题是:现在框架上的任何东西都在监听window.scroll(),因为窗口不再滚动了。 :)

我想做这样的事情:

听取$(' body')。scroll事件,然后使用body scrollLeft / scrollTop在$(window).scroll事件上伪造一个触发器。无论如何都要实现这一点,而不是实际滚动窗口(这在我的场景中是不可能的)?

我的测试文件是:

Base html:

<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
</head>
<style>
    body {
        padding:0;
        margin:0;
    }
    iframe {
        position: relative;
        height:500px;
        border:none;
        width: 100%;
    }
</style>
<body>
    <iframe scrolling="no" src="teste2.html" height="500"></iframe>
</body>
</html>

iframe:

<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
</head>
<style>
    html {
        overflow:auto;
        height:500px;
    }
    body {
        position:fixed;
        overflow:auto;
        -webkit-overflow-scrolling:touch;
        width:100vw;
        height:500px;
        padding:0;
        margin:0;    
    }
    .wrapper {
        height:2000px;
        background:green;
    }
    .footer {
        position: fixed;
        width:100%;
        bottom:0;
        left:0;
        height:50px;
        background:red;
        z-index:20;
    }
</style>
<body>
   <div class="wrapper"></div>
   <div class="footer"></div>
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
   <script>
        $('document').ready(function(){
            $('.wrapper').css('background','blue');

        });

        $(window).scroll(function(){
            console.log($(window).scrollTop());
            if ($(window).scrollTop() > 200) { 
                $('.wrapper').css('background','yellow');
            }
        });     
   </script>
</body>
</html>

非常感谢您的帮助。如果您需要更多信息,请帮助我更好地描述问题。

0 个答案:

没有答案