Frage

Ich bin mit dem JQuery Akkordeon. Alles ist gut in FireFox. In IE7 jedoch, wenn klicke ich auf einen Link in meinem Dokument, das mein Header-Server-Steuerelement (geschrumpfte) eine der Kategoriemenüschriften erweitert ist neu dimensionieren. Wie verhindere ich den Bildschirm re Sizing? Dies ist die peice von JavaScript in Frage:

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

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

            }

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

Was ich will, ist die .accordion('activate',indexval); nicht meinen Kopf Formatierung zu ändern.


Schräge .. Es hat eine Arbeit um für diese in IE sein. Wenn ich meine Funktion leer aus und führen Sie einfach:

window.scroll(0,900);

ich locker noch meine Sever Kontrolle oben ?! Wer einen Vorschlag?


Vielleicht ist dies das Problem .. Die Seite eigentlich aus zwei divs gemacht wird. Die obere div ist für die Kopfsteuerung Anzeige (vor den Tagen des Masterpages) und der untere Abschnitt ist der Abschnitt I innerhalb blättern bin versucht. Der „Inhalt“ div ist diejenige, die ich die Fähigkeit erfordern, zu blättern. Die „header“ div ist derjenige, der verschwindet, wenn ich scrollen. Kann mir jemand noch retten? :)

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

War es hilfreich?

Lösung 2

Also habe ich es herausgefunden. Ich arbeite an Legacy-Code, die ich geerbt. Ich war auf dem Holzweg auf. Ich fand den folgenden Code in der Kopfzeile der Seite gibt mir Kummer:

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

             }
         }


     }

Beachten Sie die header.clientHeight Anrufe? Dieser Code-Schnipsel offensichtlich bekommt nur die Header-Höhe und damit entspricht den Inhalt div Höhe. Das Problem war (und nur in IE wohlgemerkt) die client Funktion wurde immer „0“ zurück. Ich ersetzt diese mit header.offsetHeight und alles ist gut.

So wäre es, dass in IE meine client Funktionen erscheinen, wo nicht richtig funktioniert.

Andere Tipps

Haben Sie eine Bildlaufleiste in Ihrem Browser, bevor und nachdem Sie das Menü erweitern?

Was passiert sein könnte, ist, dass, bevor Sie das Menü erweitern, alles auf dem Bildschirm passt, so wird der Browser, den Sie nicht eine Scrollbar geben; aber wenn Sie das Menü erweitern es braucht mehr Platz, so dass der Browser fügt eine Scrollbar, so dass die Webseite „Skala“ nach unten.

Ich bin mir nicht sicher, wie das Problem zu beheben, ohne eine große min-height in Ihrer CSS-Datei einstellen, so dass die Bildlaufleiste zeigt immer nach oben.

Ich hoffe, das hilft.

UPDATE: Ich habe gerade gefunden eine Website , die spricht darüber, wie das Scrollbar Problem zu beheben. Ich wollte nur alle anderen, die über diese kommt ein viel sauberer fix lassen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top