© 版权声明:本文为博主原创文章,转载请注明出处

问题描述:利用iframe做页面引入,用$(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;// 窗口宽度变为现有宽度+滚动条宽度
21   }
  initHeight = contentHeight;// 将初始高度重置为现有高度   $("#main-wrapper").width(screenWidth);// 设置内容区域宽度
  $("#main-wrapper").css("margin-top", navHeight);// 设置内容区域margin-top
  $("#main-wrapper").height(contentHeight);// 设置内容区域高度 }

利用$(window).resize()实现窗口大小自适应宽度问题的更多相关文章

  1. WPF 窗口大小自适应

    在设置桌面不同分辨率以及较大DPI下,窗口如何显示的问题. 方案一 设置窗口最大值和最小值显示 通过对比当前屏幕的可显示区域,将窗口高宽最大值和最小值,设置为窗口的实际高宽(此例中仅设置高度) 界面设 ...

  2. jqGrid随窗口大小变化自适应宽度

    $(function(){ $(window).resize(function(){ $("#jqgridID").setGridWidth($(window).width()); ...

  3. vue中监听window.resize的变化

    我只想说每个人遇到的bug真的不能一概而论,解决办法也会有不同.在vue中使用echarts的时候,会想要实现window.resize窗体变化大小的时候让图形大小跟着变化.实现的过程中各种bug,也 ...

  4. VueJs 监听 window.resize 方法

    Vuejs 本身就是一个 MVVM 的框架. 但是在监听 window 上的 事件 时,往往会显得 力不从心. 比如 这次是 window.resize 恩,我做之前也是百度了一下.看到大家伙都为这个 ...

  5. 关于jqGrid组件表格无法自适应宽度问题

    今天生成了一个4列的表格,但是无法自适应宽度,使用 $(window).resize(function(){ $(window).unbind("onresize"); $(&qu ...

  6. 从三栏自适应宽度布局到css布局的讨论

    如何实现一个三栏自适应布局,左右各100px,中间随着浏览器宽度自适应? 第一个想到的是使用table布局,设置table的宽度为100%,三个td,第1个和第3个固定宽度为100px,那么中间那个就 ...

  7. 解决extjs grid 不随窗口大小自适应的问题

    解决extjs grid 不随窗口大小自适应的问题 August 30, 2010 zhai Javascript 8,403 viewsGo to comment 最近遇到的问题,在使用grid的时 ...

  8. 解决Javascript中$(window).resize()多次执行(转)

    https://www.cnblogs.com/shuilangyizu/p/6816756.html 有些时候,我们需要在浏览器窗口发生变化的时候,动态的执行一些操作,比如做自适应页面时的适配.这个 ...

  9. 解决Javascript中$(window).resize()多次执行

    有些时候,我们需要在浏览器窗口发生变化的时候,动态的执行一些操作,比如做自适应页面时的适配.这个时候,我们需要在窗口拖动的时候去执行代码.但是有些时候,执行的操作比较复杂,我们只希望在窗口拖动完毕之后 ...

随机推荐

  1. win2008通过计划任务定时执行bat文件

    前段时间在Windows Server 2008安装了一套基于MySQL数据库的软件,处于数据安全的考虑,希望每天能够自动进行数据库备份.我在别人脚本的基础上自己写了一个数据库备份的bat脚本,双击该 ...

  2. (1) SpringBoot创建发布

    一.安装jdk8 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 二.配置环境 ...

  3. apache和tomcat群集

    httpd.conf    httpd.conf中添加:    #与tomcat的插件    include "D:\clusterServer\apache\conf\mod_jk.con ...

  4. Xamarin XAML语言教程通过数据绑定使用Progress属性

    Xamarin XAML语言教程通过数据绑定使用Progress属性 开发者除了可以为ProgressBar定义的Progress属性直接赋双精度类型的值外,还可以通过数据绑定的方式为该属性赋值,此时 ...

  5. 小程序 wx:for 循环嵌套

    json数据: [//library-6F    [//library-6F-601      [//id:1-1 ,8(Y/N),9(Y/N)……21(Y/N)        'Y','Y','Y' ...

  6. quartz Cron-Expression的表达式

    关于quartz Cron-Expression的表达式,这个博客写的很好 ttp://www.cnblogs.com/yaowen/p/3779284.html CronTrigger配置完整格式为 ...

  7. adb 设备不识别

    android真坑 有两台测试机 都能连能snapdragon profiling了 忽然 一台不能识别了 adb devices 就不存在 一台一直是好的 kill server start ser ...

  8. EarlyZ disable( earlyz失效

    There are a few ways to disable EarlyZ list here: Shader depth output disabled Alpha test with depth ...

  9. Spring IoC Container and Spring Bean Example Tutorial

    Spring Framework is built on the Inversion of Control (IOC) principle. Dependency injection is the t ...

  10. 【PA2012】【BZOJ4289】Tax

    Description 给出一个N个点M条边的无向图,经过一个点的代价是进入和离开这个点的两条边的边权的较大值.求从起点1到点N的最小代价. 起点的代价是离开起点的边的边权.终点的代价是进入终点的边的 ...