Frage

Ich möchte vom rechten Rand des Browsers mein jQuery Dialog x-Pixel entfernt positionieren. Ist das irgendwie möglich?

http://jqueryui.com/demos/dialog/

Die Position Option scheint nicht diese Art von Einrichtung zu haben, aber ist es eine andere Möglichkeit, es zu tun?

War es hilfreich?

Lösung

Wenn Sie Ihr Dialogfeldes position:absolute machen, sein dann genommen über die reguläre Seite fließen, und Sie können die left und top Eigenschaft verwenden, es auf der Seite überall zu platzieren.

$('.selector').dialog({ dialogClass: 'myPosition' });

und definieren die MyPosition CSS-Klasse wie:

.myPosition {
    position: absolute;
    right: 200px; /* use a length or percentage */
}

Sie können das top, left, right und bottom Eigenschaften für myPosition entweder mit einer Länge wie in Pixeln oder Prozentsatz.

Andere Tipps

Das hält Dialog div in fester Position

Dies funktioniert für mich in IE FF Chrom und Safari

jQuery("#dialogDiv").dialog({
    autoOpen: false, 
    draggable: true,
    resizable: false,
    height: 'auto',
    width: 500,
    modal: false,
    open: function(event, ui) {
        $(event.target).parent().css('position', 'fixed');
        $(event.target).parent().css('top', '5px');
        $(event.target).parent().css('left', '10px');
    }

});

, wenn Sie bei geöffnetem Dialogfeld nur rufenden

$('#dialogDiv').dialog('open');

Die meisten dieser Antworten schienen Abhilfen zu mir zu sein, und ich wollte den offiziellen jQuery Weg finden, es zu tun. Nach dem Lesen durch die .position() docs, fand ich, dass es in der Tat in der Initialisierung der jQuery Widget getan werden kann:

$("#dialog").dialog({
    title:title,
    position:{my:"right top",at:"right+100 top+100", of:"body"},
    width:width,
    height:height
})

Wenn die 100 ist der Abstand von der rechts und von oben bzw.

Ich verstehe die Antwort bereits akzeptiert, aber nur für den Fall, wenn ein Bedarf weiteren Informationen: http://salman-w.blogspot.co .uk / 2013/05 / jquery-ui-dialog-examples.html

$(function() {
            $("#dialog").dialog({
                position: {
                    my: "right bottom",
                    at: "right bottom",
                    of: window
                }
            });
        });

Mit diesem Code, den Sie Ihre oberen und linke Position angeben:

$('#select_bezeh_window').dialog({
    modal:true,
    resizable:false,
      draggable:false,
      width:40+'%',
      height:500 ,
      position:{
          using: function( pos ) {
                $( this ).css( "top", 10+'px' );
                $( this ).css( "left", 32+'%' );
          }
       }
 });

siehe hier: http://jqueryui.com/demos/dialog/#option- Position

initialisieren ein Dialog mit der Position Option angegeben.

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

Get oder die Position Option, nach der init.

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

Das funktioniert für mich an der rechten oberen Ecke mit 10px versetzte den Dialog anzuzeigen: position: "right-10 top+10":

$( "#my-dialog" ).dialog({
    resizable: false,
    height:"auto",
    width:350,
    autoOpen: false,
    position: "right-10 top+10"
});

Um fix Mittelposition, die ich benutze:

open : function() {
    var t = $(this).parent(), w = window;
    t.offset({
        top: (w.height() / 2) - (t.height() / 2),
        left: (w.width() / 2) - (t.width() / 2)
    });
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top