D3
OG
Old school D3 from simpler times
All examples
By author
By category
About
zanarmstrong
Full window
Github gist
Adaption of Jfire.io animation, for teaching purposes
<!DOCTYPE html> <head> <meta charset="utf-8"> <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script> <style> </style> </head> <body> <script> // created by https://jfire.io/animations/2015-03-09/, adapted for demo var width = 500, height = 500, n = 20; var margin = {top: 20, right: 10, bottom: 20, left: 10}; var svg = d3.select("body").append("svg") .attr("width", width) .attr("height", height) var g = svg.selectAll(".groups") .data(d3.range(n)) .enter().append("g").attr("class", "group"); g.append("path") .attr("fill", "none") .attr("stroke", "#d1d1d1") .attr("stroke-width", 3) .attr("d", "M-150,0L150,0"); g.selectAll("ellipse") .data([-150, 150]) .enter().append("ellipse") .attr("cx", function(d) { return d; }) .attr("cy", 0) .attr("rx", 10) .attr("ry", 7) .attr("fill", "#bbb"); d3.timer(function(t) { g.attr("transform", function(d) {return "translate(" + [width / 2, (d + 1) * height / (n + 1)] + ")scale(" + (Math.sin(d / 2 - t / 1000) + 1) / 2 + ",1)";}) }); </script> </body>
https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js