Otra duda
Ahora estoy haciendo una función que me mueva un elemento desde un lugar (left, top, right o bottom) n px. En principio no hay problema cuando el parámetro es left o top, pero con los otros dos sí. Posteo el código y os pediría que lo probaráis porque no sé explicar muy bien el problema XD :
Código Javascript
:
Ver original// ...
posicion : function(donde){
var left = this.offsetLeft, top = this.offsetTop, padre = this.offsetParent, body = P(document.body);
while(!/(body|html)/i.test(padre.tagName)){
left += padre.offsetLeft;
top += padre.offsetTop;
padre = padre.offsetParent;
}
return {
'left' : left,
'right' : body.getStyle('width').match(/\d+/)[0]-left,
'top' : top,
'bottom' : body.getStyle('height').match(/\d+/)[0]-top
}[donde];
},
// el problema está en mover
mover : function(desde, cuanto){
var obj = { 'left' : 'right', 'top' : 'bottom', 'right' : 'left', 'bottom' : 'top' };
var estilo = P(this).css('height', P(this).getStyle('height')).css('width', P(this).getStyle('width')).posicion(desde);
return P(this).css('position', 'absolute').css(obj[desde], 'auto').css(desde, parseFloat(estilo + cuanto) + 'px');
},
// ...
Saludos y gracias :D