2009-07-06 8 views
1

私はJQueryアコーディオンを使用しています。すべてがFireFoxでうまくいきます。 IE7では、アコーディオンのメニュー見出しの1つを展開する文書内のリンクをクリックすると、ヘッダーサーバーコントロールのサイズが変更されます(縮小)。画面のサイズ変更を停止するにはどうすればよいですか?これが問題でJavaScriptのpeiceです:JQueryアコーディオン:ヘッダーコントロールのサイズ変更

if (!$('h3.ReferenceBackgroundHeader', '#References').hasClass('ui-state-active')) { 

       $("#References").accordion('activate', 0); 

      } 

      window.scrollTo(0, $('#References').offset().top); 
      return false; 

私が欲しいものは.accordion('activate',indexval);は私のヘッダの書式を変更しないことです。


奇妙な.. IEでこのための回避策がなければなりません。私の機能を空にして実行しただけの場合:

window.scroll(0,900); 

私はまだまだ自分のコントロールを一番上に失い​​ますか?誰でも提案がありますか?


これはおそらく問題です。ページは実際には2つのdivで構成されています。一番上のdivはヘッダコントロール(MasterPagesの日前)を表示するためのもので、一番下のセクションはスクロールしようとしているセクションです。 「コンテンツ」divは、スクロールする機能が必要なdivです。 「ヘッダー」divは、スクロールすると消えるものです。誰でもまだ私を救うことができますか? :)

<body> 
<form id="Form1" method="post" runat="server"> 
    <div id="header"> 
     <uc1:Header ID="headerControl" runat="server"></uc1:Header> 
    </div> 
    <div id="content" style="overflow:auto"> 
     <asp:PlaceHolder ID="contentPlaceholder" runat="server"></asp:PlaceHolder> 
    </div> 
</form> 

答えて

0

私はそれを理解しました。私は継承したレガシーコードに取り組んでいます。私は間違った木を吠えていた。ページのヘッダーに次のコードがあります。

function resizeContentWindowScrollBar() { 
     var contentDiv = document.getElementById("content"); 
     var header = document.getElementById("header"); 

     if (header != null) { 
      var desiredHeight = document.body.clientHeight - header.clientHeight; 

      if (desiredHeight > 0) { 
       contentDiv.style.height = (document.body.clientHeight - header.clientHeight) + "px"; 

      } 
     } 


    } 

header.clientHeightが呼び出されていますか?このスニペットは明らかにヘッダーの高さを取得するだけで、これでコンテンツのdivの高さと等しくなります。問題は(とIEの心だけで)clientHeight関数は常に "0"を返していた。私はこれらをheader.offsetHeightに置き換えました。

IEでは、私のclientHeight関数が正常に動作しないように見えます。

+0

ニース、あなたは問題を理解してうれしい。人々はそれが解決されていることを知っているように、あなたは正しい "答え"を選択する必要があります。 – thebrokencube

2

あなたがメニューを展開する前と後に、あなたのブラウザでのスクロールバーを持っていますか?

何が起こっているかは、メニューを展開する前にすべてが画面に収まるため、ブラウザがスクロールバーを表示しないことです。メニューを展開するとスペースが必要になるので、ブラウザはスクロールバーを追加し、ウェブページを「縮小」させます。

スクロールバーが常に表示されるように、あなたのcssファイルに大きなmin-heightを設定しないとその問題を解決する方法がわかりません。

希望に役立ちます。

UPDATE:私はちょうどスクロールバーの問題を解決する方法について語っa websiteを見つけ。ちょうどこれを渡る誰かがずっときれいな修正をしたかっただけです。

+0

私はあなたが正しいと思います。私はこれ以上いくつか実験しますが、これは非常に可能性があります。 – Nick

関連する問題