2011-11-04 22 views
12

¿Cómo puedo posicionar el cuadro de diálogo jQuery UI ESPECÍFICAMENTE, para que vaya a una posición no definido por el centro, arriba, etc.Posición de diálogo jQuery UI

Gracias, he tratado de ser lo más específico posible.

+1

http://stackoverflow.com/questions/744554/jquery-ui-dialog-positioning – Dev

Respuesta

25

El uso de la opción position: http://jqueryui.com/position/

Especifica dónde se debe mostrar el cuadro de diálogo. Valores posibles:

1) una sola cadena que representa la posición dentro de la ventana gráfica: 'center', 'left', 'right', 'top', 'bottom'.
2) una matriz que contiene una coordenada x, y par en pixel desplazamiento desde la esquina izquierda, parte superior de la ventana gráfica (por ejemplo [350100])
3) una matriz que contiene x, valores de cadena y de posición (por ejemplo [ 'derecho' , 'arriba'] para esquina superior derecha).

Por ejemplo: $(".selector").dialog("option", "position", [350,100]);

+3

Tenga en cuenta que esta forma de posición de matriz ahora está obsoleta http://api.jqueryui.com/dialog/#option-position – Cheekysoft

7

Si desea utilizar el posicionamiento absoluto, la opción del diálogo position es lo que necesita. Si necesita posicionarse en relación con otros elementos, hay otra técnica fácil de utilizar, jQuery UI de $('selector').position(options); (ver en: http://jqueryui.com/demos/position/)

Por ejemplo:

// div to position against 
var $div = $('#someDiv'); 

// Open dialog (positioning won't work on hidden elements) 
$dialog.dialog('open'); 

// position newly opened dialog (using its parent container) below $div. 
$dialog.dialog('widget').position({ 
    my: "left top", 
    at: "left bottom", 
    of: $div 
}); 
+0

@Cheekysoft Su comentario parece implicar que este formulario está en desuso. Esto no usa una matriz, sino un parámetro de objeto, que es el tipo de parámetro deseado para el método de posición. Tiene razón al decir que los formularios de matriz y parámetro de cadena están en desuso. –

17

Ésta no es una respuesta exacta a su pregunta , pero se puede mezclar 'top' con los valores de píxel, así:

$('#widget').dialog({ 
    position: ['top', 100] 
}); 

esto posicionará el cuadro de diálogo centrado a lo largo del eje X, 100 píxeles hacia abajo desde la parte superior.

+0

Para que lo sepas, el componente '' top'' no está haciendo nada en este ejemplo. Cuando pasa una matriz a la opción de posición, está esperando un par de coordenadas ['[x, y]'] (http://api.jqueryui.com/dialog/#option-position). La cadena no se puede analizar como un entero, por lo que el posicionamiento horizontal predeterminado permanece como centro. Puede reemplazar la parte '' superior '' con cualquier cadena y seguirá funcionando de la misma manera: [** Fiddle Demo **] (http://jsfiddle.net/KyleMit/978UW/) – KyleMit

+0

Gracias por esa aclaración. – camainc

Cuestiones relacionadas