2011-06-28 103 views
0

我有一個div,它的高度是由javascript控制的,它應該會在窗口調整大小時改變div的大小。放大窗口時它現在工作正常,但縮小窗口時不起作用。可能是什麼原因?我有下面的代碼當窗口縮小時,IE div不會相應縮小

<script type="text/javascript"> 
     function window_resize() { 
      var height = 0; 
      var body = window.document.body; 
      if (window.innerHeight) { 
       height = window.innerHeight; 
      } else if (body.parentElement.clientHeight) { 
       height = body.parentElement.clientHeight; 
      } else if (body && body.clientHeight) { 
       height = body.clientHeight; 
      } 

      var element = document.getElementById('test'); 
      element.style.height = height*80/100 + 'px'; 
     } 

     Sys.Application.add_init(function (sender, args) { 
      $addHandler(window, 'resize', window_resize); 
      $addHandler(window, 'onload', window_resize); 
      document.body.onresize = window_resize; 
      document.body.onload = window_resize; 
     }); 

    </script> 

    <div id="test" style="width:1000px;padding:0px;margin:0px;"> 
     <spc:Explorer ID="explorer" runat="server"></spc:Explorer> 
    </div> 
+0

你在這裏使用JavaScript庫嗎? – kinakuta

+0

是的,div中有一個控件(id爲'explorer')。本質上來說,控制來自extjs。 – tom

回答

0

我猜測當窗口變小時div太小。可能的原因是縮小窗口大小會使滾動條出現(即使它們未顯示),因此窗口大小的計算在滾動條內。

一種解決方法是將body.style.display = 'none'應用於身體,獲得窗口的大小,然後做body.style.display = ''

+0

剛剛嘗試過,不起作用。 :-( – tom

相關問題