移动端中iframe缩放
问题来源于此,需在移动端页面中嵌入iframe页面,如下图。
文章图片
iframe页面属于PC页面,无视口缩放,而移动端页面有视口缩放
iframe页面受此影响,也会出现放大问题:
文章图片
解决以上问题,可考虑引入transform的scale,在iframe加载完成后获取其宽高,并与父元素进行比例换算
【移动端中iframe缩放】
let ifr = document.getElementById('iframe')
ifr.onload = function(){
let wd = ifr.contentWindow.document.documentElement.scrollWidth;
let ht = ifr.contentWindow.document.documentElement.scrollHeight;
let x = document.getElementsByClassName('formData')[0].clientWidth / wd;
ifm.style.width = wd +'px';
ifm.style.height = ht +'px';
ifm.style.transform = `scale(${x})`;
ifm.style.transformOrigin='0 0';
}
出现另外一个问题,
文章图片
iframe虽然变小了,但实际上的占位并没有改变,真实高度依然达到了1000以上,所以出现很长的滚动条,可以在iframe与父元素中间加入一个容器,用来展示缩小后的iframe,
let ifr = document.getElementById('iframe')
ifr.onload = function(){
let wd = ifr.contentWindow.document.documentElement.scrollWidth;
let ht = ifr.contentWindow.document.documentElement.scrollHeight;
let x = document.getElementsByClassName('formData')[0].clientWidth / wd;
ifm.style.width = wd +'px';
ifm.style.height = ht +'px';
ifm.style.transform = `scale(${x})`;
ifm.style.transformOrigin='0 0';
document.getElementsByClassName('box')[0].style.height = ht*x + 'px'}
.formData{
width: 100%;
height: 100%;
overflow-x: hidden;
overflow-y: auto;
}
.box{
width:100%;
overflow: hidden;
}
如有更好的方法,望赐教
推荐阅读
- 移动端h5调试方法
- python|8. 文件系统——文件的删除、移动、复制过程以及链接文件
- 被催稿了,所以聊聊|被催稿了,所以聊聊 长链接在移动端开发中如何做到和短链接一样高效
- 移动端事件绑定
- markdown中使用iframe|markdown中使用iframe 嵌套网页
- 移动用户体验设计(底部导航)
- 人工智能与智能系统3->|人工智能与智能系统3-> 机器人学3 | 移动机器人平台
- 移动5G网络下,如何做好网络主播,成为百万主播()
- 《哈尔的移动城堡》观后感
- 移动互联网创业者的三大误区