From dbf290de2ed382fb245113da0550c0b7ce5f809b Mon Sep 17 00:00:00 2001 From: Patrick Simianer Date: Wed, 26 Aug 2015 12:04:32 +0200 Subject: finished snap-to-grid --- snaptogrid.js | 90 ----------------------------------------------------------- 1 file changed, 90 deletions(-) delete mode 100644 snaptogrid.js (limited to 'snaptogrid.js') diff --git a/snaptogrid.js b/snaptogrid.js deleted file mode 100644 index cc2be8a..0000000 --- a/snaptogrid.js +++ /dev/null @@ -1,90 +0,0 @@ -var el; -window.onload = function () { - var color, i, ii, tempS, tempT, - dragger = function () - { - el = this; - this.ox = this.type == "rect" ? this.attr("x") : this.attr("cx"); - this.oy = this.type == "rect" ? this.attr("y") : this.attr("cy"); - }, - move = function (dx, dy) - { - var att = this.type == "rect" ? {x: this.ox + dx, y: this.oy } : {cx: this.ox + dx, cy: this.oy }; - this.attr(att); - r.safari(); - }, - collide = function (obj) - { - document.getElementById("debug").innerHTML = el["id"] + " <-> " + obj["id"] - ee = shapesById[obj["id"]]; - if (el["grid"] > ee["grid"]) { - if (el.getBBox().width < obj.getBBox().width && - el.getBBox().x > (obj.getBBox().x+obj.getBBox().width/2)) { - return; - } - att = {x: ee.attr("x")+el.getBBox().width+10}; - ee.attr(att); - } else { - if (el.getBBox().width < obj.getBBox().width && - el.getBBox().x < (obj.getBBox().x+obj.getBBox().width/2)) { - return; - } - att = {x: ee.attr("x")-(el.getBBox().width+10)}; - ee.attr(att); - } - - var tmp = el["grid"]; - el["grid"] = obj["grid"]; - obj["grid"] = tmp; - }, - up = function () - { - snapToGrid(this); - } - snapToGrid = function (obj) - { - // y - var sy = 50; - if (obj.getBBox().y != sy) { - att = {y: sy}; - obj.animate(att, 250); - } - // x - /*if (el.getBBox().x != el["grid"]*70) { - att = {x:el["grid"]*70}; - obj.animate(att,250); - }*/ - - var d = 0; - for (var i = 0; i < 4; i++) { - obj = null - for (var j = 0; j < shapes.length; j++) { - obj = shapesById[j]; - if (obj["grid"] == i) - break; - } - att = {x:d}; - obj.animate(att,250); - d += obj.getBBox().width+10; - } - }; - r = Raphael("holder", 280, 100), - xAnchors = [ 0, 20, 60, 130 ] - shapes = [ - r.rect(xAnchors[0], 50, 10, 30, 0), - r.rect(xAnchors[1], 50, 30, 30, 0), - r.rect(xAnchors[2], 50, 60, 30, 0), - r.rect(xAnchors[3], 50, 30, 30, 0), - ]; - colors = [ "#000", "#ccc", "#0f0", "#00f" ]; - shapesById = {}; - for (var i = 0; i < shapes.length; i++) { - shapes[i].attr({fill: colors[i], cursor: "move"}); - shapes[i].drag(move, dragger, up).onDragOver( function(a) { collide(a);}); - shapes[i]["id"] = i; - shapes[i]["grid"] = i; - shapesById[i] = shapes[i]; - } - -}; - -- cgit v1.2.3