利用$(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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM