d3-moveto

0.0.3 • Public • Published

d3-moveto

d3-moveto works with D3 selections to let you move SVG elements to the front or back of their parent SVG.

In interactive data visualizations, it is often necessary to bring elements to the front or back. But it is not easy to do this with SVG.

Unlike HTML elements, SVG elements have no z-index attribute, so it is impossible to make a younger sibling appear on top of an older one. Therefore, in SVG, elements which are appended to the DOM first will always appear on top of elements appended later.

Installing

If you use NPM, npm install d3-moveto. Otherwise, download the latest release. You can also load directly from unpkg. You may use the entire D3.js library or, at a minimum, d3-selection.

Example

<svg>
  <rect class="rect rect-1" x="0" y="0" height="10" width="10" fill="blue"></rect>
  <rect class="rect rect-2" x="10" y="0" height="10" width="10" fill="yellow"></rect>
  <rect class="rect rect-3" x="10" y="10" height="10" width="10" fill="green"></rect>
  <rect class="rect rect-4" x="0" y="10" height="10" width="10" fill="purple"></rect>
  <rect class="front" x="0" y="0" height="20" width="20" fill="red"></rect>
</svg>

<script src="https://d3js.org/d3-selection.v1.min.js"></script>
<script src="https://unpkg.com/d3-moveto"></script>
<script>
  var curr = 1;
  setInterval(function(){
    d3.selectAll(".rect").moveToBack();
    d3.select(".rect-" + curr).moveToFront();
    if (curr == 4) {
      curr = 1;
    } else {
      curr++;
    }
  }, 1000);
</script>

API Reference

# selection.moveToBack()

Moves a selected SVG element to the back of the SVG.

# selection.moveToFront()

Moves a selected SVG element to the front of the SVG.

Readme

Keywords

Package Sidebar

Install

npm i d3-moveto

Weekly Downloads

1

Version

0.0.3

License

BSD-3-Clause

Last publish

Collaborators

  • harrystevens