Додзё Диджит Диалог относительная позиция. Является ли это возможным? - PullRequest
4 голосов
/ 18 марта 2010

Я хочу расположить Dijit Dialog Dojo относительно одного из моих HTML-элементов. Является ли это возможным? Если да. Как?

В настоящее время он всегда показывает диалог в середине окна просмотра.

Может ли кто-нибудь помочь мне в этом вопросе?

Спасибо.

amar4kintu

Ответы [ 4 ]

4 голосов
/ 10 ноября 2012

Другой способ сделать это (не очень хорошо, потому что я переопределяю закрытый метод, но он дает мне необходимую гибкость):

var d = new Dialog({
    title:"Your Dialog",
    _position:function(){
        if(this.refNode){
            p = Geo.position(this.refNode);
            Style.set(this.domNode,{left:p.x + "px", top:p.y + "px"});
        }
    },

    showAround:function(node){
        this.refNode = node;
        this.show();
    }
});
d.showAround(dojo.byId("someNode"));

В этом примере в качестве стиля используется "dojo / dom-style", а в качестве Geo - "dojo / dom-geometry".

2 голосов
/ 23 марта 2010

Я сделал это, настроив абсолютную позицию по умолчанию для dijit.dialog с помощью dojo ..

Я использовал следующий код для перенастройки абсолютной позиции диалога к тому, что я хочу ..

dijit.byId('dialog').show();

dojo.style('dialog','background-color','#AAAAAA');

var co = dojo.coords('period'); // element below which I want to display dialog

dojo.style('md1','top',(co.y + 25)+'px');
dojo.style('md1','left', co.x+'px');

Надеюсь, это кому-нибудь поможет ..

Спасибо.

amar4kintu

1 голос
/ 16 марта 2012
    var dialog = new dijit.Dialog({
        title: myTitle,
        content: myDialogContent,
        style: "width: 300px;",
        onShow: function() { dojo.style(this.containerNode.parentNode,'visibility','hidden'); },
        onLoad: function() { dojo.style(this.containerNode.parentNode,{top:'100px', visibility:'visible'}); }

    });

Вместо top: '100px', вы можете использовать также top: '20% ', но не проверено. Мое додзё 1.7.1.

1 голос
/ 22 марта 2010

Я думаю dijit.TooltipDialog - это то, что вам нужно.

...