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

问题描述:利用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. POJ 2528.Mayor's posters-线段树(成段替换、离散数据、简单hash)

    POJ2528.Mayor's posters 这道题真的是线段数的经典的题目,因为数据很大,直接建树的话肯定不可以,所以需要将数据处理一下,没有接触离散化的时候感觉离散化这个东西相当高级,其实在不知 ...

  2. HDU 3466 Proud Merchants【贪心 + 01背包】

    Recently, iSea went to an ancient country. For such a long time, it was the most wealthy and powerfu ...

  3. 64位系统下powerdesigner15连接oracle odbc

    操作系统:win2008 64 Oracle版本:64位11g PowerDesigner版本:15.1 问题描述:因为PowerDesigner是32的程序,连接数据库会默认开启32位的ODBC,因 ...

  4. 在Android App中集成Google登录

    技术文章 来源:码农网 发布:2016-09-19 浏览:194 摘要:今天,几乎所有的web和移动app都自带谷歌和Facebook登录,这对app开发者和用户来说是一个非常有用的功能,因为几乎每个 ...

  5. 【Linux】linux命令大全

    [注意]:命令[compgen -b]可以列出所有当前系统支持的命令. 109个Linux命令 目录 1       文件管理... 5 1.1          basename. 5 1.2    ...

  6. 脑科学对基金经理的八个启示 z

    脑科学对基金经理的八个启示 第一,总想要更多.人类大脑是在物资奇缺过程中进化的,所以获得任何“资源”,如食物.性.金钱等,都可以让人感觉良好,大脑也会鼓励我们继续下去. 事实上,可卡因等药物就是“绑架 ...

  7. DNX 概览

    来源https://docs.asp.net/en/latest/dnx/overview.html .NET Execution Environment是什么 .NET Execution Envi ...

  8. linux 通过两个网卡,连接不同的不同的网段

    linux数据包转发功能 A:192.168.xxx.xxx   B:172.24.xxx.xxx, 从而实现了A网段和B网段的互通. 原因Linux机器可以通过设置实现数据包的转发功能. #echo ...

  9. ZeroMQ使用学习记录(转)

    ZMQ简介 ZMQ(ØMQ.ZeroMQ, 0MQ)看起来像是一套嵌入式的网络链接库,但工作起来更像是一个并发式的框架.它提供的套接字可以在多种协议中传输消息,如线程间.进程间.TCP.广播等.你可以 ...

  10. 使用nvDXT.exe把图片转换成dds图片【转】

    从nvidia官网下载工具包DDS Utilities [https://developer.nvidia.com/legacy-texture-tools] 转换图片格式需要的工具是 nvdxt.e ...