score:3

Accepted answer

I just coded up a quick example with Number.MAX_VALUE and d3 doesn't complain:

<!DOCTYPE html>
<html>

  <head>
    <script data-require="d3@4.0.0" data-semver="4.0.0" src="https://d3js.org/d3.v4.min.js"></script>
  </head>

  <body>
    <script>
      
      var svg = d3.select('body')
        .append('svg')
        .attr('width', 500)
        .attr('height', 500);
        
      var c = svg.append('circle')
        .attr('transform', 'translate(20,20)')
        .attr('r', 20)
        .style('fill', 'steelblue');
      
      c.transition()
        .duration(Number.MAX_VALUE)
        .ease(d3.easeLinear)
        .tween("attr.transform", function() {
          var self = d3.select(this),
              i = d3.interpolateTransformSvg('translate(20,20)', 'translate(400,400)');
          return function(t) {
            console.log(i(t));
            self.attr('transform',i(t));
          };
        });
    </script>
  </body>

</html>

Some quick calculations tell me though that it'll take 1x10306 iterations of the transition loop to move my circle 1px, so assuming the transition loop is firing every 17 milliseconds, that's around 5.34 × 10296 years before I see any movement....


Related Query