DakM
Messages postés65Date d'inscriptionjeudi 20 janvier 2005StatutMembreDernière intervention25 juin 2010
-
25 déc. 2008 à 01:09
DakM
Messages postés65Date d'inscriptionjeudi 20 janvier 2005StatutMembreDernière intervention25 juin 2010
-
25 déc. 2008 à 01:42
La classe:
var DialogsIDContainer = new Array();
var DialogManager = Class.create();
DialogManager.prototype = {
menuID : null,
DIDC : null,
// quelques fonctions inutiles dans mon probleme !
visible: function() {
$(this.menuID).style.visibility='visible';
this.show();
},
hide: function() {
$(this.menuID).fade({
duration: 0.3,
from: 1,
to: 0
});
},
show: function() {
$(this.menuID).fade({
duration: 0.3,
from: 0,
to: 1
});
},
count: function() {
return DialogsIDContainer.length;
},
fillContainer: function(c) {
$append($(DialogsIDContainer[this.DIDC].containerID),c);
},
find: function(name) {
found = null;
i = 0;
while(!found && i < 100) {
if(DialogsIDContainer[i].name == name) {
found = true;
break;
}
++i;
}
return (!found) ? false : i;
},
getHandle: function(name) {
return DialogsIDContainer[this.find(name)].handle;
},
center: function() {
pos = Element.cumulativeOffset($(this.menuID));
sizes = getSizes(this.menuID);
center = getCenter();
alert("going from (left:"+pos.left+",top"+pos.top+") to (left:"+(center.left-(pos.left+sizes.width/2))+",top"+(center.top-(pos.top+sizes.height/2))+")");
new Effect.Move(this.menuID, {
x: (center.left-(pos.left+sizes.width/2)), //
y: (center.top-(pos.top+sizes.height/2)), //-
transition: Effect.Transitions.spring
});
},
resetPos: function() {
pos = Element.cumulativeOffset($(this.menuID));
new Effect.Move(this.menuID, {
x: pagerect.left-pos.left, //
y: pagerect.top-pos.top, //-
transition: Effect.Transitions.spring
});
}
}
function getCenter() {
var ret = new Object();
ret = {
'left' : Math.floor((pagerect.left+pagerect.width)/2),
'top' : Math.floor((pagerect.top+pagerect.height)/2)
};
return ret;
}
function getSizes(id) {
var ret = new Object();
ret = {
'width' : $(id).getWidth(),
'height': $(id).getHeight()
};
return ret;
}
Donc ca creer des petits dialogs, comparable a une window ... avec graphics, bref !
Quand ma page est chargée, ceci est executé:
dlgLogin = new DialogManager("login","menu-login","login","menu-login-container");
//
dlgLogin.visible();
dlgLogin.center();
dlgChanSelect = new DialogManager("chselect","menu-chselect","chselect","menu-chanselect-container");
dlgChanSelect.resetPos();
Donc jai mon dialog de login qui vient vers le "centre" (Centre acceptable).
Et le dialog ChanSelect qui va aux positions initiales (en gros: left:0; top:0;)
Apres quelques lignes de JS, j'ai