我想将Dojo的Dijit Dialog相对于我的一个html元素定位。可能吗? 如是。怎么样?
目前它始终在视口中间显示对话框。
任何人都可以帮我解决这个问题吗?
感谢。
amar4kintu
答案 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。