Pergunta

Eu tentei seguinte código, mas só posições diálogos deixou posição canto superior para o centro, e que faz elemento a ser alinhado à direita. Como posso diálogo centro a centro real, que elementos contagens de largura, de modo que a linha central vai cortar diálogo para 50% 50% halfs?

$('.selector').dialog({ position: 'center' });

http://docs.jquery.com/UI/Dialog#option-position

Foi útil?

Solução

Eu tenho certeza que você deve não precisa definir uma posição:

$("#dialog").dialog();

deve centrar por padrão.

Eu tinha um olhar para o artigo, e também verificado o que diz sobre o jquery oficial local -ui sobre o posicionamento de um diálogo : e nele foram discutidos 2 estados de:. Inicializar e depois Inicializar

Exemplos de código - (retiradas de jQuery UI 2009-12-03)

Inicializar uma janela com a opção posição especificada.

$('.selector').dialog({ position: 'top' });

obter ou definir a opção posição, depois de inicialização.

//getter
var position = $('.selector').dialog('option', 'position');
//setter
$('.selector').dialog('option', 'position', 'top');

Eu acho que se você fosse para remover o atributo posição que você iria encontrá-lo Centros pela própria pessoa tentar a segunda opção setter onde você define 3 elementos de "opção" "posição" e "centro".

Outras dicas

O mais recente jQuery UI tem um componente de posição:

$("#myDialog").position({
   my: "center",
   at: "center",
   of: window
});

Doc: http://jqueryui.com/demos/position/
Get: http://jqueryui.com/download

Devido a necessidade de diálogo uma posição, você precisa incluir a posição js

<script src="jquery.ui.position.js"></script>

Então, se alguém bate esta página como eu fiz, ou para quando eu me esquecer em 15 minutos, eu estou usando diálogo jqueryui versão 1.10.1 e jQuery 1.9.1 com o IE8 em um iframe (blah), e ele precisa de um dentro especificado ou se ele não funcionar, ou seja

position: {
 my: "center bottom",
 at: "center top",
 of: $("#submitbutton"),
 within: $(".content")
}

Graças ao @ vm370 para me apontar na direção certa.

open: function () {

    var win = $(window);

    $(this).parent().css({
        position: 'absolute',
        left: (win.width() - $(this).parent().outerWidth()) / 2,
        top: (win.height() - $(this).parent().outerHeight()) / 2
    });
}

Para posição central correção, eu uso:

open : function() {
    var t = $(this).parent(), w = window;
    t.offset({
        top: (w.height() / 2) - (t.height() / 2),
        left: (w.width() / 2) - (t.width() / 2)
    });
}

Tente este ....

$(window).resize(function() {
    $("#dialog").dialog("option", "position", "center");
});

Estou ficando melhores resultados para colocar diálogo jQuery no centro da janela do navegador com:

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

Há provavelmente forma mais precisa para posicioná-lo com a opção " usando ", conforme descrito na documentação em http://api.jqueryui.com/position/ mas eu estou com pressa ...

Eu tenho que chamar a função dialog() duas vezes para posicionar a caixa de diálogo (jQuery v1.11.2 / jQueryUI v1.10.4).

$("#myDialog").dialog({
    /* initial dialog parameters */
}).dialog({
    position: {
        my: "center center",
        at: "center center",
        of: window
    }
});

A seguir parâmetro posição funcionou para mim

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

Boa sorte!

Jquery UI 1.9.2, jQuery e as versões posteriores don' apoio IE8

Eu encontrei duas soluções para isso.

  1. Reversão para jquery UI 1.7.2 para apoiar IE8,

  2. Tente este código com Jquery UI 1.9.2

position: {my: "center",  at: "center", of: $("body"),within: $("body") }

De acordo com a discussão a seguir, o problema pode ser devido a uma menor compatibilidade IE nas versões mais recentes do jQuery, voltando ao 1.7.2 parece resolver o problema, o que só ocorre no IE8. http://forum.jquery.com / topic / jquery-ui-dialog-posicionamento-não-trabalho-em-ie-8

Outra coisa que pode dar-lhe o inferno com posicionamento JQuery diálogo, especialmente para documentos maiores do que a porta visualização do browser - você deve adicionar a declaração

<!DOCTYPE html>

No topo do documento.

Sem ele, jquery tende a colocar a caixa de diálogo na parte inferior da página e erros podem ocorrer quando se tenta arrastá-lo.

Se você estiver usando arquivos jquery individuais ou um jquery personalizada de download de qualquer forma certifique-se de também têm jquery.ui.position.js adicionados à sua página.

Você está executando a este em apenas IE? Se assim for, tente adicionar isso para a primeira linha de tag cabeça de sua página:

<meta http-equiv="X-UA-Compatible" content="IE=7" />

Eu tive que embora todos os problemas de compatibilidade foram fixados em jQueries posteriores, mas eu corri para este hoje.

Tente isto para versões mais antigas e alguém que não querem posição de uso:

$("#dialog-div-id").dialog({position: ['center', 'top'],....

Você também precisa fazer manual de re-centralização se estiver usando jQuery UI em dispositivos móveis - o diálogo é posicionada manualmente através de um '& superior esquerdo' propriedade css. se o utilizador muda a orientação, o posicionamento não é mais centrada, e deve ser adaptado / re-centrado em seguida.

Para o ambiente Win7 / IE9 apenas definir no seu arquivo css:

.ui-dialog {
   top: 100px;
   left: 350px !important;
}

Eu tive um problema com isso e eu finalmente descobri isso. Até hoje eu estava usando uma versão muito antiga do jQuery, versão 1.8.2.

Em todos os lugares onde eu tinha dialog usada eu tinha iniciado com a seguinte opção de posição:

$.dialog({
    position: "center"
});

No entanto, descobri que a remoção position: "center" ou substituí-lo com a sintaxe correta não fazer o truque, por exemplo:

$.dialog({
    position: {
       my: "center",
       at: "center",
       of: window
    }
});

Embora o acima é correta, eu também estava usando option para definir a posição como o centro quando eu carregar a página, à maneira antiga, assim:

// The wrong old way of keeping a dialog centered
passwordDialogInstance.dialog("option", "position", "center");

Este estava causando todas as minhas janelas de diálogo para furar a parte superior esquerda do porto vista.

Eu tive que substituir todas as ocorrências desta com a nova sintaxe correta a seguir:

passwordDialogInstance.dialog(
    "option",
    "position", 
    { my: "center", at: "center", of: window }
);

Eu fixo com css:

.ui-dialog .ui-dialog-content {
  width: 975px!important;
  height: 685px!important;
  position: fixed;
  top: 5%;
  left: 50%;
  margin:0 0 0 -488px;
}

Não foi possível obter IE9 para centralizar a caixa de diálogo.

Fixed-lo adicionando isso ao css:

.ui-dialog {
    left:1%;
    right:1%;
}

Percent não importa. Qualquer número pequeno funcionou.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top