diff options
Diffstat (limited to 'src/arrange.js')
-rw-r--r-- | src/arrange.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/arrange.js b/src/arrange.js new file mode 100644 index 0000000..d7fcb5f --- /dev/null +++ b/src/arrange.js @@ -0,0 +1,53 @@ + +// add backward / forward functionality to elements +SVG.extend(SVG.Element, { + + // get all siblings, including me + siblings: function() { + return this.mother().children(); + }, + + // send given element one step forwards + forward: function() { + var i = this.siblings().indexOf(this); + this.mother().remove(this).add(this, i + 1); + + return this; + }, + + // send given element one step backwards + backward: function() { + var i, p = this.mother(); + + p.levelDefs(); + + i = this.siblings().indexOf(this); + + if (i > 1) + p.remove(this).add(this, i - 1); + + return this; + }, + + // send given element all the way to the front + front: function() { + this.mother().remove(this).add(this); + + return this; + }, + + // send given element all the way to the back + back: function() { + var i, p = this.mother(); + + p.levelDefs(); + + i = this.siblings().indexOf(this); + + if (i > 1) + p.remove(this).add(this, 0); + + return this; + } + +});
\ No newline at end of file |