2010-03-18 3 views
4

Je souhaite positionner la boîte de dialogue Dijit de Dojo par rapport à l'un de mes éléments html. c'est possible? Si oui. Comment?Dojo Dijit Dialog position relative. c'est possible?

Actuellement, il affiche toujours le dialogue au milieu de la fenêtre.

Quelqu'un peut-il m'aider à ce sujet?

Merci.

amar4kintu

Répondre

2

Je l'ai fait en réglant par défaut position absolue de dijit.dialog en utilisant .. dojo

J'ai utilisé le code suivant pour réadapter la position absolue de dialogue à ce que je veux ..

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

Espérons que cela aider quelqu'un ..

Merci.

amar4kintu

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

    }); 

lieu haut: '100px' vous pouvez également utiliser le dessus: 20% », mais pas testé bien. Mon dojo est 1.7.1.

4

Une autre façon que je le fais (pas grand parce que je passer outre une méthode privée mais il me donne la flexibilité que je veux):

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")); 

Cet exemple utilise « dojo/style dom » comme style et " dojo/dom-geometry "comme Geo.

Questions connexes