2011-06-28 22 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内にコントロール(「explorer」のID)があります。本質的に、制御はextjsからである。 – tom

答えて

0

私は、ウィンドウを小さくするとdivが小さすぎると推測します。その理由は、ウィンドウサイズを小さくするとスクロールバーが表示されるため(表示されていなくても)、ウィンドウサイズの計算がスクロールバーの内側になるためです。

解決策の1つは、本体にbody.style.display = 'none'を適用し、ウィンドウのサイズを取得してからbody.style.display = ''にすることです。

+0

が試しただけで動作しません。 :-( – tom

関連する問題