Domanda

Sto usando jQuery Accordion. Tutto è bene in FireFox. In IE7, tuttavia, quando fa clic su un link nel mio documento che si espande una delle voci di menu fisarmonica mio controllo server intestazione è ri dimensioni (rimpicciolito). Come si interrompe la schermata di re ridimensionamento? Questo è il pezzo di JavaScript in questione:

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

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

            }

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

Quello che voglio è il .accordion('activate',indexval); di non cambiare la mia formattazione intestazione.


Strano .. Ci deve essere un lavoro in giro per questo in IE. Se svuoto la mia funzione fuori e basta eseguire:

window.scroll(0,900);

ho ancora sciolto il mio controllo sever in alto ?! Qualcuno ha un suggerimento?


Forse questo è il problema .. La pagina è in realtà costituito da due div. Il div superiore è per la visualizzazione del controllo di intestazione (prima dei giorni di MasterPages) e la sezione inferiore è la sezione che sto cercando di scorrere all'interno. Il div "contenuto" è quello che ho bisogno la possibilità di scorrere. Il div "header" è quella che scompare quando ho scorrere. Qualcuno mi può salvare ancora? :)

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

È stato utile?

Soluzione 2

Così ho preso capito. Sto lavorando su codice legacy che ho ereditato. Mi è stato abbaiare contro l'albero sbagliato. Ho trovato il seguente codice nell'intestazione della pagina mi dà dolore:

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

             }
         }


     }

Si notino le chiamate header.clientHeight? Questo frammento di codice, ovviamente, ottiene solo l'altezza di testa e con ciò equivale all'altezza contenuti div. Il problema era (e solo in IE si mente) la funzione clientHeight era sempre tornando "0". Ho sostituito questi con header.offsetHeight e tutto va bene.

Quindi, sembrerebbe che in IE mie funzioni clientHeight in cui non funziona correttamente.

Altri suggerimenti

Avete una barra di scorrimento nel browser prima e dopo di espandere il menu?

Che cosa potrebbe accadere è che, prima di espandere il menu, tutto si adatta allo schermo, in modo che il navigatore non ti dà una barra di scorrimento; ma quando si espande il menu ha bisogno di più spazio, quindi il browser aggiunge una barra di scorrimento, causando la pagina web per "scala" verso il basso.

Non sono sicuro di come risolvere tale questione senza impostare una grande min-height nel file CSS in modo che la barra di scorrimento mostra sempre.

La speranza che aiuta.

UPDATE: Ho appena trovato un sito web che parla di come risolvere il problema barra di scorrimento. Volevo solo farvi chiunque altro che si imbatte in questo una correzione molto più pulito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top