关于iframe页面嵌入后在ios设备上position=fixed属性失效的解决办法
2016-09-22 10:34
726 查看
项目中有个需求时在页面的最下面有一排按钮,这排按钮需要固定到页面的最下面,不能随着屏幕的滚动为滚动。
问题:
功能是使用css的position:fixed; bottom:0;属性设置的。
单独一个页面访问,不管在PC上还是移动设备上都可以正常显示。
But,当这个页面被一个iframe嵌入的时候,在ios设备上footer一直处在页面内容的最下面,而不是屏幕的最下面。而PC和android设备上可以正常显示。
原因:iframe嵌入后,ios设备不支持position:fixed;属性。
解决办法:
方案1:.动态计算footer的高度,而且footer的高度时相对iframe计算的,所以footer的高度(top)是 = 屏幕滚动条的高度 + 屏幕的高度 - header的高度 - footer的高度。
当时亲测,在ipad上是不支持window.scroll事件的,没法获取真正的scrollHeight的值。如果添加了touchmove事件,但获取的pageY高度又不准确,时刻在变化,导致footer上下闪动。 【亲测失败,请高人指教!!!】
方案2:设置body的高度为一个固定值,即body{height:600px;overfolw-y:auto;} ,这样footer就能永远停在屏幕的最下面了。但是body体中出现滚动条,需要隐藏起来。
问题:
功能是使用css的position:fixed; bottom:0;属性设置的。
单独一个页面访问,不管在PC上还是移动设备上都可以正常显示。
But,当这个页面被一个iframe嵌入的时候,在ios设备上footer一直处在页面内容的最下面,而不是屏幕的最下面。而PC和android设备上可以正常显示。
原因:iframe嵌入后,ios设备不支持position:fixed;属性。
解决办法:
方案1:.动态计算footer的高度,而且footer的高度时相对iframe计算的,所以footer的高度(top)是 = 屏幕滚动条的高度 + 屏幕的高度 - header的高度 - footer的高度。
当时亲测,在ipad上是不支持window.scroll事件的,没法获取真正的scrollHeight的值。如果添加了touchmove事件,但获取的pageY高度又不准确,时刻在变化,导致footer上下闪动。 【亲测失败,请高人指教!!!】
方案2:设置body的高度为一个固定值,即body{height:600px;overfolw-y:auto;} ,这样footer就能永远停在屏幕的最下面了。但是body体中出现滚动条,需要隐藏起来。
相关文章推荐
- session失效刷新后登录页面嵌入在iframe中的解决办法
- 中间部分滚动记录div内滚动条的位置, 以及将页面分为三部分组成解决position:fixed在ios下失效问题
- session失效刷新后登录页面嵌入在iframe中的前台解决办法
- 小技巧css解决移动端ios不兼容position:fixed属性,无需插件
- 完美解决 IOS系统safari5.0 浏览器页面布局iframe滚动条失效问题,iossafari5.0
- 关于iOS页面中scrollview中嵌入百度地图滑动冲突问题解决方法
- IOS上iframe的滚动条失效的解决办法
- 小技巧css解决移动端ios不兼容position:fixed属性,无需插件
- ios解决输入框弹出后position:fixed失效问题
- IOS上iframe的滚动条失效的解决办法
- 关于移动端使用局部滚动解决ios不支持position:fixed后产生的问题
- ios设备下使用iframe时 fixed失效以及iframe无法设置高度的问题
- 关于 iframe 下 session 失效解决办法记录
- 关于button按钮设置background属性后,点击效果失效的解决办法。(当点击的时候显示阴影)
- iframe,H5标签embed加载页面,session失效后页面嵌套解决办法
- IOS上iframe的滚动条失效的解决办法。
- ios弹出软键盘时fixed失效及点击空白处隐藏层的解决办法
- ios解决输入框弹出后position:fixed失效问题
- 关于在页面总嵌入iframe,ifram中发起请求,服务器端的session为空问题解决
- iPhone手机浏览器运行嵌入页面的iframe时候会撑全屏,页面在安卓手机上正常,解决办法