2014-04-03 177 views
2

我知道你通常不喜歡做這樣的事情,但我在大學必須做一個項目,在同一頁的幾個不同的樣式表。我已經獲得了JavaScript代碼,以便在調整窗口大小時調整頁面大小。JavaScript頁面縮放

這段代碼可以正常工作,但是當內容div不應占用頁面的大部分時,我在其中一個樣式表中獲得了特殊效果,此頁面在ems中有測量值,而我的其他樣式表使用px,但是我是應該使用ems至少一個頁面。儘管我可以給我的講師一個更大的理由,但我更願意解決這個問題。我使用的JavaScript代碼如下所示:

function smoothresize() { 
      blockwidth = 59.4; /*This is in ems as per the lecturers request a well and is the size of the container div I created*/ 
      minmargin = 0; 
      minsize = 10; 
      emwidth = (minmargin * 2) + blockwidth; 
      computeResize(emwidth, minsize, false) 
     } 

function computeResize(wide, minsize, jerk) { 
      windowpixels = document.documentElement.clientWidth; 
      pixelsize = windowpixels/wide; 
      emsize = calculateEmsize(pixelsize, minsize, jerk); 
      b = document.getElementsByTagName('html')[0]; 
      b.style.fontSize = emsize + "em"; 
     } 

function calculateEmsize(psize, minsize, jerk) { 
      if (psize > minsize) { 
       raw = psize; 
      } 
      else { 
       raw = minsize; 
      } 
      if (jerk) { 
       result = ((Math.floor(raw))/16); 
      } 
      else { 
       result = raw/16; 
      } 
      return result 
     } 

這是我在XHTML的實現代碼:

<body onload="smoothresize()" onresize="smoothresize()"> 

我將無法使用jQuery作爲解決問題要麼是,我只能修改給定的代碼。

在這個問題上的任何幫助,將不勝感激

+1

當你設置像素大小時,你的邏輯可能會出錯'computeResize'?如果你的窗口寬度爲1000px,那麼你用ems中的寬度除以16.8,這似乎並不直接與你在下面檢查它的方式相關嗎?您可能想要設置一個示例頁面,因爲很難準確地告訴您要做什麼,以及出了什麼問題。 – cjspurgeon

回答

0

退房jQuery的用戶界面插件。它包含一個「可調整大小」選項;您應該能夠添加<script type="text/javascript">window.onload=function(){};</script>,在加載頁面時加載所需的JQUI功能。