Pregunta

Estoy utilizando el jQuery acordeón. Todo está bien en Firefox. En Internet Explorer 7, sin embargo, al hacer clic en un enlace en mi documento que se expande uno de los títulos de los menús acordeón mi servidor de control de cabecera es re tamaño (encogida). ¿Cómo evito que la pantalla vuelva dimensionamiento? Este es el pedazo de JavaScript en cuestión:

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

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

            }

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

Lo que yo quiero es la .accordion('activate',indexval); a no cambiar de formato de cabecera.


Extraño .. Tiene que haber un trabajo alrededor de este en el IE. Si vacío mi función y sólo ejecute:

window.scroll(0,900);

Todavía perder mi control de cortar en la parte superior ?! Alguien tiene una sugerencia?


Tal vez este es el problema .. La página está compuesta en realidad de dos divs. El div superior es para mostrar la cabecera de control (antes de los días de MasterPages) y la sección inferior es la sección que estoy tratando de desplazarse dentro. El "contenido" div es el que requieren la capacidad de desplazarse. El div "cabecera" es el que desaparece cuando me desplazo. ¿Alguien puede salvar todavía? :)

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

¿Fue útil?

Solución 2

Así que lo tiene resuelto. Estoy trabajando en el código heredado que heredé. Yo estaba ladrando al árbol equivocado. He encontrado el siguiente código en la cabecera de la página me da pena:

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

             }
         }


     }

Note las llamadas header.clientHeight? Este fragmento, obviamente, sólo se pone la altura del encabezado y con esto equivale la altura del contenido div. El problema era (y sólo en IE que importa) la función clientHeight siempre regresaba "0". He sustituido éstos con header.offsetHeight y todo está bien.

Así que parecería que en IE mis funciones clientHeight donde no funciona correctamente.

Otros consejos

¿Tiene una barra de desplazamiento en su navegador antes y después de expandir el menú?

Lo que podría estar sucediendo es que antes de expandir el menú, todo cabe en la pantalla, por lo que el navegador no le da una barra de desplazamiento; pero cuando se expande el menú que necesita más espacio, por lo que el navegador añade una barra de desplazamiento, haciendo que la página web de "escala" abajo.

No estoy seguro de cómo solucionar ese problema sin establecer una gran min-height en su archivo css para que la barra de desplazamiento siempre aparece.

Espero que ayude.

ACTUALIZACIÓN: Me acaba de encontrar una página web que habla sobre cómo solucionar el problema de la barra de desplazamiento. Sólo quería que cualquier otra persona que viene a través de esta una solución mucho más limpio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top