jQueryのアコーディオン:私のヘッダーコントロールのサイズ変更します

StackOverflow https://stackoverflow.com/questions/1088279

質問

私はjQueryのアコーディオンを使用しています。すべては、Firefoxでもあります。 IE7では、しかし、ときに私は私のヘッダーサーバーコントロールがサイズ(縮んだ)再でアコーディオンメニューの見出しのいずれかを拡張し、私のドキュメント内のリンクをクリックしてください。どのように私は、サイジング再スクリーンを停止していますか?これは問題ではJavaScriptのpeiceです:

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);

私はまだトップで私のサーバコントロールを失います!誰でも提案がありますか?

<時間>

おそらくこれは...ページは実際には二つのdiv要素で構成されている問題です。トップdivが(MasterPagesの日前に)ヘッダーコントロールを表示するためのものであり、下のセクションでは、私が内にスクロールしようとしていますセクションです。 「コンテンツ」divが、私はスクロールする能力を必要とする1つです。 「ヘッダ」の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>

役に立ちましたか?

解決 2

だから私はそれを考え出しました。私は、継承されたレガシーコードに取り組んでいます。私は間違ってツリーを吠えました。私は私に悲しみを与えてページのヘッダーに次のコードを見つけます:

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の高さを相当します。問題はclientHeight関数は常に「0」を返していました(とのみIEの心の中であなた)でした。私はheader.offsetHeightでこれらを置き換え、すべてが順調です。

IE私のclientHeight機能で正しく動作していないところように思われるようにします。

他のヒント

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

何が起こっかもしれないことは、あなたがメニューを展開する前に、すべてが画面に収まるので、ブラウザはあなたにスクロールバーを与えないということです。メニューを展開すると、ブラウザがダウンして「スケール」にWebページを引き起こして、スクロールバーが追加されますので、それは、より多くのスペースを必要とします。

私は、スクロールバーが常に現れるように、あなたのCSSファイルで大きなmin-heightを設定せずにその問題を解決するかどうかはわかりません。

希望に役立ちます。

のUPDATE:のIちょうど見つかっ<のhref = "http://ryanfait.com/resources/forcing-vertical-scrollbars/" のrel = "nofollowをnoreferrer" >スクロールバーの問題を解決する方法について語っウェブサイトに。ただ、聞かせたかったこの出くわす他の誰よりクリーン修正ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top