我有一个基本的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>
非常感谢您的帮助。如果您需要更多信息,请帮助我更好地描述问题。