2012-03-15 7 views
11

Estoy usando un cuadro de diálogo de la IU de jquery para que los usuarios acepten un Términos & Aparece la ventana emergente Condiciones en la que el contenido es demasiado largo para caber en la altura de la ventana emergente. Entonces aparece una barra de desplazamiento cuando aparece el diálogo, pero se abre con la barra de desplazamiento en la parte inferior.Posible que la barra de desplazamiento del diálogo jqueryUI comience en la parte superior, cuando el contenido es más largo que la altura?

Esto no parece posible a través de las opciones de diálogo.

¿Alguien sabe de una manera de abrir el diálogo con la barra de desplazamiento en la parte superior?

+0

¿Tiene alguna elementos de formulario (de entrada, botones, etc.) en la parte inferior del panel de desplazamiento ? Porque el diálogo tiene algunos problemas con el enfoque de dichos elementos. Una solución consiste en adjuntar una entrada en la parte superior del marcado de los cuadros de diálogo y eliminarla con la devolución de llamada abierta del diálogo. Tal vez el problema esté relacionado con [esta pregunta] (http://stackoverflow.com/questions/1202079/prevent-jquery-ui-dialog-from-setting-focus-to-first-textbox). –

Respuesta

19

Como se comentó anteriormente, es posible que tenga un elemento en la parte inferior del contenido del diálogo que inicialmente recibe el foco, lo que hace que la barra de desplazamiento se desplace a ese elemento cuando se abre el cuadro de diálogo. Puede probar la solución en el comentario, que debería funcionar si el problema es causado por un problema de enfoque. Alternativamente, usted can manually scroll the dialog's content to the top. Esto se puede hacer mediante la especificación de una devolución de llamada abierta y el desplazamiento del contenido del diálogo a la posición superior en ese país, así:

$("#dialog").dialog({ 
     open: function() { 
      $(this).scrollTop(0); 
     } 
    }); 
+0

Gracias. Ambos enfoques funcionan bien. Parece un error en jqueryUI, a menos que me falte * por qué * querrá establecer el foco en el primer elemento de entrada de forma predeterminada. – devjeff

+1

@devjeff No hay problema, si mi respuesta lo ayudó, considere considerar la posibilidad de votar o aceptarlo. Gracias. –

+0

Esto me molestaba. El valor predeterminado parece abrirse a una entrada o al menos hacia la parte inferior. Cualquier información proporcionada en la parte superior del cuadro de diálogo se pierde o debe desplazarse para verla. Tendría sentido abrir en la parte superior del cuadro de diálogo y permitir al usuario desplazarse hacia abajo. Lamentablemente, $ (esto) no funcionó y tampoco llamó al mismo selector utilizado para el diálogo ('abierto') ya que uso la opción autoOpen: true. En cambio, configuro $ ('cuerpo'). ScrollTop (0); como el cuadro de diálogo se abre en la parte superior de la página en carga. – nwolybug

Cuestiones relacionadas