利用$(window).resize()实现窗口大小自适应宽度问题
2023-12-15 15:38:50
问题描述:利用iframe做页面引入,用(window).resize()作自适应;结果窗口变小时,利用(window).resize()作自适应;结果窗口变小时,利用(window).width()获取到的宽度总是小于浏览器宽度,在左边留下17px宽度的白条。
代码如下:
<iframe id="main-wrapper" name="main-wrapper" src="zkt.htm" frameborder="0" style="float: right;"></iframe>
//?自适应主页面大小
$(window).resize(function?()?{
initSize();
}
//?初始化主页面大小
function?initSize()?{
var?screenHeight?=?$(window).height();//?窗口高度
var?navHeight?=?$("#topNav").height();//?顶部导航栏高度
var?contentHeight?=?screenHeight?-?navHeight;//?内容区域高度
var?screenWidth?=?$(window).width();//?窗口宽度
$("#main-wrapper").width(screenWidth);//?设置内容区域宽度
$("#main-wrapper").css("margin-top",?navHeight);//?设置内容区域margin-top
$("#main-wrapper").height(contentHeight);//?设置内容区域高度
}
问题分析:在页面大小发生变化时,如果高度减小时,此时会出现滚动条,$(window).width()获取的宽度为减去滚动条之后的宽度,又因为iframe默认靠右,因此左边会出现空白。
解决方案:判断当页面高度减小时,将宽度设置为$(window).width()加上滚动条(默认17px)的宽度即可。
var?initHeight?=?$(window).height()?-?$("#topNav").height();//?初始主页面高度
//?自适应主页面大小
$(window).resize(function?()?{
initSize();
}
//?初始化主页面大小
function?initSize()?{
var?screenHeight?=?$(window).height();//?窗口高度
var?navHeight?=?$("#topNav").height();//?顶部导航栏高度
var?contentHeight?=?screenHeight?-?navHeight;//?内容区域高度
var?screenWidth?=?$(window).width();//?窗口宽度
if?(initHeight?>?contentHeight)?{//?初始高度大于现有高度,高度变小过程中会出现滚动条
screenWidth?=?screenWidth?+?17;//?窗口宽度变为现有宽度+滚动条宽度
}
initHeight?=?contentHeight;//?将初始高度重置为现有高度
$("#main-wrapper").width(screenWidth);//?设置内容区域宽度
$("#main-wrapper").css("margin-top",?navHeight);//?设置内容区域margin-top
$("#main-wrapper").height(contentHeight);//?设置内容区域高度
}
文章来源:https://blog.csdn.net/allen88/article/details/135016581
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!