zoukankan      html  css  js  c++  java
  • 利用$(window).resize()实现窗口大小自适应宽度问题

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

    问题描述:利用iframe做页面引入,用$(window).resize()作自适应;结果窗口变小时,利用$(window).width()获取到的宽度总是小于浏览器宽度,在左边留下17px宽度的白条。

      代码如下:

    1 <iframe id="main-wrapper" name="main-wrapper" src="zkt.htm" frameborder="0" style="float: right;"></iframe>
     1 // 自适应主页面大小
     2 $(window).resize(function () {
     3     
     4   initSize();
     5 
     6 }
     7 
     8 
     9 // 初始化主页面大小
    10 function initSize() {
    11 
    12   var screenHeight = $(window).height();// 窗口高度
    13   var navHeight = $("#topNav").height();// 顶部导航栏高度
    14   var contentHeight = screenHeight - navHeight;// 内容区域高度
    15   var screenWidth = $(window).width();// 窗口宽度
    16 
    17   $("#main-wrapper").width(screenWidth);// 设置内容区域宽度
    18   $("#main-wrapper").css("margin-top", navHeight);// 设置内容区域margin-top
    19   $("#main-wrapper").height(contentHeight);// 设置内容区域高度
    20 
    21 }

    问题分析:在页面大小发生变化时,如果高度减小时,此时会出现滚动条,$(window).width()获取的宽度为减去滚动条之后的宽度,又因为iframe默认靠右,因此左边会出现空白。

    解决方案判断当页面高度减小时,将宽度设置为$(window).width()加上滚动条(默认17px)的宽度即可。

     1 var initHeight = $(window).height() - $("#topNav").height();// 初始主页面高度
     2 
     3 // 自适应主页面大小
     4 $(window).resize(function () {
     5     
     6   initSize();
     7 
     8 }
     9 
    10 
    11 // 初始化主页面大小
    12 function initSize() {
    13 
    14   var screenHeight = $(window).height();// 窗口高度
    15   var navHeight = $("#topNav").height();// 顶部导航栏高度
    16   var contentHeight = screenHeight - navHeight;// 内容区域高度
    17   var screenWidth = $(window).width();// 窗口宽度
    18 
    19   if (initHeight > contentHeight) {// 初始高度大于现有高度,高度变小过程中会出现滚动条
    20     screenWidth = screenWidth + 17;// 窗口宽度变为现有宽度+滚动条宽度
    21   }
    22   initHeight = contentHeight;// 将初始高度重置为现有高度
    23 
    24   $("#main-wrapper").width(screenWidth);// 设置内容区域宽度
    25   $("#main-wrapper").css("margin-top", navHeight);// 设置内容区域margin-top
    26   $("#main-wrapper").height(contentHeight);// 设置内容区域高度
    27 
    28 }
  • 相关阅读:
    Collatz Conjecture(BAPC2017)
    P3377 【模板】左偏树(可并堆)
    Mergeable Stack
    B. Our Tanya is Crying Out Loud(cf)and 5918: 改变(中石油)
    bzoj 4488: [Jsoi2015]最大公约数
    Zoj
    牛客练习赛43 回顾
    哈尔滨工程大学ACM预热赛 补题
    April Fools Day Contest 2019: editorial回顾补题
    第一周总结
  • 原文地址:https://www.cnblogs.com/jinjiyese153/p/7381686.html
Copyright © 2011-2022 走看看