Dojo Dijit Dialog相对位置。可能吗?

时间:2010-03-18 11:28:48

标签: dialog position modal-dialog dojo

我想将Dojo的Dijit Dialog相对于我的一个html元素定位。可能吗? 如是。怎么样?

目前它始终在视口中间显示对话框。

任何人都可以帮我解决这个问题吗?

感谢。

amar4kintu

4 个答案:

答案 0 :(得分:4)

我这样做的另一种方式(不是很好,因为我覆盖了私有方法,但它给了我我想要的灵活性):

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”作为Style,将“dojo / dom-geometry”用作Geo。

答案 1 :(得分:2)

我是通过使用dojo调整dijit.dialog的默认绝对位置来实现的。

我使用以下代码将对话框的绝对位置重新调整到我想要的位置..

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

答案 2 :(得分:1)

我认为dijit.TooltipDialog就是您所需要的。

答案 3 :(得分:1)

    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'}); }

    });

相反顶部:'100px'你也可以使用top:'20%'但未经过良好测试。我的道场是1.7.1。