14/12/2012, 15:44
|
| | Fecha de Ingreso: octubre-2010 Ubicación: Bucaramanga
Mensajes: 7
Antigüedad: 14 años, 2 meses Puntos: 0 | |
Agrupar elementos con Libreria Raphael, HTML 5 y SVG He esta intentando agrupar elementos con la librería Raphael, mi codigo es el siguiente:
Código:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Movable and Re-sizable Raphael JS Shape</title>
</head>
<body>
<div id="paper"></div>
<script src="jquery.min.js"></script>
<script src="raphael-min.js"></script>
<script>
(function() {
var dragStart = function() {
// Save some starting values
this.ox = this.attr('x');
this.oy = this.attr('y');
this.ow = this.attr('width');
this.oh = this.attr('height');
this.dragging = true;
};
var dragMove = function(dx, dy) {
// Inspect cursor to determine which resize/move process to use
switch (this.attr('cursor')) {
case 'nw-resize' :
this.attr({
x: this.ox + dx,
y: this.oy + dy,
width: this.ow - dx,
height: this.oh - dy
});
break;
case 'ne-resize' :
this.attr({
y: this.oy + dy ,
width: this.ow + dx,
height: this.oh - dy
});
break;
case 'se-resize' :
this.attr({
width: this.ow + dx,
height: this.oh + dy
});
break;
case 'sw-resize' :
this.attr({
x: this.ox + dx,
width: this.ow - dx,
height: this.oh + dy
});
break;
default :
this.attr({
x: this.ox + dx,
y: this.oy + dy
});
break;
}
};
var dragEnd = function() {
var box = this.getBBox();
var ref = contenedor.getBBox();
if (box.x > ref.x && box.y > ref.y && box.x2 < ref.x2 && box.y2 < ref.y2)
{
alert("Está adentro");
sector.push(this,contenedor);
}
this.dragging = false;
};
var changeCursor = function(e, mouseX, mouseY) {
// Don't change cursor during a drag operation
if (this.dragging === true) {
return;
}
// X,Y Coordinates relative to shape's orgin
var relativeX = mouseX - $('#paper').offset().left - this.attr('x');
var relativeY = mouseY - $('#paper').offset().top - this.attr('y');
var shapeWidth = this.attr('width');
var shapeHeight = this.attr('height');
var resizeBorder = 10;
// Change cursor
if (relativeX < resizeBorder && relativeY < resizeBorder) {
this.attr('cursor', 'nw-resize');
} else if (relativeX > shapeWidth-resizeBorder && relativeY < resizeBorder) {
this.attr('cursor', 'ne-resize');
} else if (relativeX > shapeWidth-resizeBorder && relativeY > shapeHeight-resizeBorder) {
this.attr('cursor', 'se-resize');
} else if (relativeX < resizeBorder && relativeY > shapeHeight-resizeBorder) {
this.attr('cursor', 'sw-resize');
} else {
this.attr('cursor', 'move');
}
};
// Create drawing area
var paper = Raphael("paper", 800, 800);
var sector = paper.set();
var contenedor = paper.rect(60,60,100,80).attr({fill:"#759dcd", stroke:'#3b5068', 'stroke-width':8}).mousemove(changeCursor).drag(dragMove, dragStart, dragEnd);
var element = paper.rect(40,40,100,80).attr({fill:"#759dcd", stroke:'#3b5068', 'stroke-width':3}).mousemove(changeCursor).drag(dragMove, dragStart, dragEnd);
})();
</script>
</body>
</html>
El problema es que no he podido hacer que se agrupen, es decir el método push no me funciona.
Saludos |