利用$(window).resize()实现窗口大小自适应宽度问题

问题描述:利用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);// 设置内容区域高度
}

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值