2012-02-16 5 views
23

Sto usando l'interfaccia utente di JQuery e vorrei posizionare la mia finestra di dialogo orizzontalmente centrata ma verticalmente sopra il centro, forse di una quantità fissa di pixel o una distanza relativa dalla parte superiore della pagina. C'è un modo semplice per farlo? Sembra che ci siano solo un paio di valori predefiniti o posso usare una posizione esatta ma c'è un modo semplice per farlo?jqueryui dialog positioning

$("#dialog-form").dialog({ 
       autoOpen: false, 
       width: 630, 
       position: 'center', 
       modal: true, 
       resizable: false, 
       closeOnEscape: false 

      }); 
+0

Hai provato '['center', 'top']'? –

+0

Ciò rende la finestra di dialogo visualizzata al centro in senso orizzontale ma nella parte superiore della pagina (supponendo che non l'abbia fatto in modo errato).Voglio posizionare il dialogo sopra il centro di un po '. –

risposta

73

Utilizzare lo position option per allineare la parte superiore della finestra di dialogo con la parte superiore della finestra (più un pixel o uno spostamento percentuale).

Questo dovrebbe centrare la finestra di dialogo orizzontalmente e posizionarla a 150 pixel dall'alto.

$("#dialog-form").dialog({ 
    autoOpen: false, 
    width: 630, 
    position: { my: 'top', at: 'top+150' }, 
    modal: true, 
    resizable: false, 
    closeOnEscape: false 
}); 

versioni precedenti di jQuery UI usati un vettore contenente un [x, y] coppia di coordinate in pixel offset da sinistra, angolo superiore della finestra (per esempio [350.100]).

var dialogWidth = 630; 
$("#dialog-form").dialog({ 
    // ... 
    width: dialogWidth, 
    position: [($(window).width()/2) - (dialogWidth/2), 150], 
    // ... 
}); 
+1

Si noti che il metodo array è stato deprecato. Usa invece un oggetto. – JasCav

+0

aggiornato per utilizzare l'oggetto posizione (per le versioni più recenti dell'interfaccia utente jQuery) –

+0

Nota, si ha il controllo della x, y di entrambi gli oggetti. posizione **: {my: "center top", a: "center top", di: window}, ** – Lodlaiden

-5

applicare css nella vostra # utilizzo dialogo-forma% del campione

se width = 1000

messo

sinistra: 50% margin-left: -500px;

per renderlo centrato. oppure puoi usare iframe.

1

mi sono imbattuto in questo durante la ricerca per la stessa domanda bu ho già avuto la mia risposta:

position: ['center', 'top+100'] 

questo centrerà in orizzontale e 100 pixel dall'alto

questo funziona anche

position: ['center', 'center+100'] 

centro in orizzontale e 100 pixel dal basso centro

0

Ho regolato la risposta di Exlord per adattarla.

posizione: [ 'centro-7%', 'centro-12%']

Regola orizzontalmente e verticalmente

$(".popup").dialog({  
position: ['center-7%', 'center-12%'], 
title: 'Updating', 
    width: "auto", 
} 
}); 
2

Questo ha funzionato per me

position: { my: "center", at: "center", of: window }, 

Inoltre è possibile controllare le posizioni di dialogo qui
Find Position

0

Prova questa:

position: { 
     my: 'top', 
     at: 'top', 
     of: $('#some-div') 
    }, 
0
position: { 
    my: 'top', 
    at: 'top+150' 
} 

lavorato per me.