缘起
最近在做的一个项目,用iframe展示法律条款,判断滚动到底部时,允许进行下一步操作。页面里采用flex布局,分三块,上面标题、中间iframe展示,底部下一步操作按钮。
愉快地开发完成后,经测试,各个手机都很正常,唯有一个ios12的手机,iframe无法滚动。
分析
ios12是支持flex布局的。但是页面呈现的时候,iframe本身的高度似乎是完全展开的。问题应该就是ios12及以下版本对iframe的处理不一样。 在更高版本的ios系统,并没有这个问题。
解决
参考: https://www.jianshu.com/p/af837464ba56
关键点在于: -webkit-overflow-scrolling: touch;
<div class="scroll-wrapper">
<iframe src=""></iframe>
</div>
<style>
.scroll-wrapper {
-webkit-overflow-scrolling: touch;
overflow-y: scroll;
/* 提示: 请在此处加上需要设置的大小(dimensions)或位置(positioning)信息! */
}
.scroll-wrapper iframe {
height: 100%;
width: 100%;
}
</style>